大佬教程收集整理的这篇文章主要介绍了如何解决 django 应用程序中的错误“'NoneType' 对象没有属性 'day'”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中注意到了这个错误,“'nonetype' 对象没有属性 'day'”。我注意到的是。我有一个名为 course_schedule 的模型,课程安排有周一到周日的选项。如果课程表是部分填充的,也就是说我只填充了一些天,比如一周中完整的 7 天中的 3 天,我会收到错误但是每当我填充课程表时,我不会完全填充课程表模型出现错误,一切正常。
错误日志:
TraceBACk (most recent call last):
file "C:\Users\Habib\documents\django\FIVERR\Ayyub_SMS\venv\lib\site-packages\django\core\handlers\exception.py",line 47,in inner
response = get_response(request)
file "C:\Users\Habib\documents\django\FIVERR\Ayyub_SMS\venv\lib\site-packages\django\core\handlers\base.py",line 181,in _get_response
response = wrapped_callBACk(request,*callBACk_args,**callBACk_kwargs)
file "C:\Users\Habib\documents\django\FIVERR\Ayyub_SMS\sms\schoolapp\vIEws.py",line 1754,in sir_course
get_all = getall(2021,sch.day)
Exception Type: AttributeError at /en/sir_course
Exception Value: 'nonetype' object has no attribute 'day'
@H_394_2@models.py
class Assign_teacher_to_courses(models.Model):
Course_name = models.ForeignKey(add_courses,on_delete=models.CASCADE)
Teacher_name = models.ForeignKey(add_teacher_by_manager,on_delete=models.CASCADE)
def __str__(self):
return self.Course_name.Course_name+" - "+self.Teacher_name.teacher_ID+" - "+self.Teacher_name.teacher_name
class course_schedule(models.Model):
days_choices = (
("Mon",'Monday'),("Tue",'Tuesday'),('Wed',"Wednessday"),('Thurs',"Thursday"),('Fri',"FrIDay"),('Sat',"Saturday"),("Sun","Sunday"),)
day = models.CharFIEld(max_length=60,default="Sun")
time_session = models.CharFIEld(max_length=150,default='8:00am')
end_session = models.CharFIEld(max_length=150,default='10:00am')
def __str__(self):
return self.day
vIEws.py
def sir_course(request):
if request.method == "POST":
get_course_name_th = Assign_teacher_to_courses.objects.filter(Teacher_name=get_ID_teach)
# print(get_course_name_th)
store_email_teacher_dtta = store_email_teach_new.objects.filter(Teacher_ID=teach_course_ID)
days = {}
for course in get_course_name_th:
# print(course.Course_name.syllabus)
sch = course_schedule.objects.get(ID=course.Course_name.pk)
get_all = getall(2021,sch.day)
Lists = {}
for n in get_all:
date = n.strftime("%d/%m/%Y")
try:
if Days[str(datE)]:
days[str(datE)].append(str(course.Course_name.Course_Name)+" "+str(course.Course_name.course_codE))
except KeyError:
days[str(datE)] = [str(course.Course_name.Course_Name)+" "+str(course.Course_name.course_codE),]
# print(days)
context1 = {'get_course_name_t_cours':get_course_name_th,"days": days}
return render(request,'teacher_page.HTML',context1)
else:
return redirect('/')
看起来 sch 可能是 None。
你应该总是把你的对象放在 try...except 块中,或者你可以使用内置的 get_object_or_404
遵循 add_courses
模型的 previous question 片段。
class add_courses(models.Model):
Course_Name = models.CharField(max_length=200,blank=TruE)
Manager_Name = models.ForeignKey(Manager_login_information,on_delete=models.CASCADE,blank=TruE)
description = models.TextField(default='',blank=TruE)
syllabus = models.TextField(default='',blank=TruE)
student = models.ManyToManyField(add_students_by_manager,blank=TruE)
schedule = models.ForeignKey(course_schedule,blank=TruE)
def __str__(self):
return self.Course_Name
您有以下从 Assign_teacher_to_courses
到 course_schedule
的关系路径:
Assign_teacher_to_courses -> add_courses -> course_schedule
因此要获得 course
中每个 get_course_name_th
的时间表,您应该将 sch = course_schedule.objects.get(id=course.Course_Name.pk)
更改为 sch = course.Course_Name.schedule
。
以上是大佬教程为你收集整理的如何解决 django 应用程序中的错误“'NoneType' 对象没有属性 'day'”全部内容,希望文章能够帮你解决如何解决 django 应用程序中的错误“'NoneType' 对象没有属性 'day'”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。