[英]I am getting “This field is required.” error on load of webpage when using the Django ModelForm
I made a model called Annoucement in my models.py file as well as the form for it in my forms.py file.我在我的 models.py 文件中制作了一个名为 Annoucement 的 model,并在我的 forms.py 文件中制作了它的表格。 I then made the simple create view for it in my my views.py and made it show on the frontend using the django-crispy-forms package but anytime i load the website, the border of the field appears red showing that there is an error.
然后我在我的views.py中为其创建了简单的创建视图,并使用django-crispy-forms package将其显示在前端,但是每当我加载网站时,该字段的边框会显示为红色,表明存在错误. I have tried checking what the error could be but I am not getting any luck around it.
我已经尝试检查错误可能是什么,但我没有得到任何运气。
models.py模型.py
class Announcement_by_dean(models.Model):
student_id = models.ManyToManyField(add_students_by_manager)
message = models.TextField()
sent_date = models.DateField(default=datetime.now(), blank=True)
updated_date = models.DateField(auto_now=True, blank=True)
def __str__(self):
return "message sent on "+ str(self.sent_date)
forms.py forms.py
class Annoucement_form(ModelForm):
class Meta:
model = Announcement_by_dean
fields = ['student_id', 'message']
views.py视图.py
def dean_page(request):
annoucement_list = Announcement_by_dean.objects.all()
if request.method == 'POST':
form = Annoucement_form(request.POST)
if form.is_valid():
form.save()
messages.success(request, _("Message Sent Successfully!!!"))
return redirect('dean_page')
else:
messages.error(request, _("Message Not Sent, Something is Wrong!!!"))
else:
form = Annoucement_form()
messages.error(request, _("Invalid Method!!!"))
context = {"form":form, "annoucement_list":annoucement_list}
return render(request, "dean_page.html", context)
dean_page.html dean_page.html
<!-- Send Announcement -->
<div class="tab-pane fade show" id="nav-announcement" role="tabpanel" aria-labelledby="nav-announcement-tab">
<div class="container mt-4 p-3">
<form action="{% url 'dean_page' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form|crispy}}
<button type="submit" class="btn btn-success btn-sm">Submit</button>
</form>
</div>
</div>
I was able to solve the problem, I realised that the indentation of my context and return render was the issue.我能够解决这个问题,我意识到我的上下文和返回渲染的缩进是问题所在。
views.py视图.py
def dean_page(request):
annoucement_list = Announcement_by_dean.objects.all().order_by('-id')
if request.method == 'POST':
form = Annoucement_form(request.POST)
if form.is_valid():
form.save()
messages.success(request, _("Message Sent Successfully!!!"))
return redirect('dean_page')
else:
messages.error(request, _("Message Not Sent, Something is Wrong!!!"))
else:
form = Annoucement_form()
context = {"annoucement_list":annoucement_list, "form":form}
return render(request, "dean_page.html", context)
to
def dean_page(request):
annoucement_list = Announcement_by_dean.objects.all().order_by('-id')
if request.method == 'POST':
form = Annoucement_form(request.POST)
if form.is_valid():
form.save()
messages.success(request, _("Message Sent Successfully!!!"))
return redirect('dean_page')
else:
messages.error(request, _("Message Not Sent, Something is Wrong!!!"))
else:
form = Annoucement_form()
context = {"annoucement_list":annoucement_list, "form":form}
return render(request, "dean_page.html", context)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.