问题描述
我的模板中有一个表单,我使用 django-crispy-forms 来实现。我有models.py,然后创建了forms.py,然后在我的views.py 中使用它。我不知道为什么我一直有“此字段是必需的”。每当我加载页面时。我有一些感觉,它与你的 views.py 有关。如果我能收到一些解决方案,我会很高兴。谢谢
这是页面的图像。
models.py
class add_courses(models.Model):
Course_Name = models.CharField(max_length=200)
Manager_Name = models.ForeignKey(Manager_login_information,on_delete=models.CASCADE)
choices = (
("online","online"),("in person","in person")
)
description = models.TextField(default='')
syllabus = models.TextField(default='')
classroom = models.CharField(choices=choices,default='in person',max_length=12)
location = models.CharField(max_length=40,default='')
course_code = models.CharField(max_length=14,default='')
student = models.ManyToManyField(add_students_by_manager)
teacher = models.ManyToManyField(add_teacher_by_manager)
schedule = models.ForeignKey(course_schedule,on_delete=models.CASCADE)
def __str__(self):
return self.Course_Name
views.py
def manager_page(request):
if request.method=="POST":
manager_id = request.POST.get('manager_id')
manager_name = request.POST.get('manager_name')
form3 = AddCourses()
if request.method == "POST":
form3 = AddCourses(request.POST)
if form3.is_valid():
form3.save()
return redirect("/")
# get_course_details = add_course.objects.all()
courses = add_courses.objects.all().order_by('-id')
get_supervisor_man=manager_supervisor.objects.filter(manager_id=manager_id)
Manager_login_information_get1 = Manager_login_information.objects.get(manager_ID=manager_id)
# print(Manager_login_information_get1)
manager_usid = Manager_login_information_get1.manager_ID
manager_usname = Manager_login_information_get1.manager_Name
context9 = {'manager_id':manager_id,'manager_name':manager_name,'form1':form1,'form2':form2,'form3':form3,'courses':courses,'Manager_login_information_get1':Manager_login_information_get1}
return render(request,'manager_page.html',context9)
else:
return redirect('/')
解决方法
在您的模型中,您必须添加 blank=True 以允许空白字段。(默认为 False)
所以你的模型看起来像这样:
class add_courses(models.Model):
Course_Name = models.CharField(max_length=200,blank=True)
...
...