【发布时间】:2020-10-07 15:31:26
【问题描述】:
我正在尝试使用表单更新现有模型行(将选项添加到具有先前条目的现有 ManyToMany 字段),但是当我使用 is_valid() 它返回 false 时,我已经通过几种方式检查了错误但是没有显示错误 我在我的模板中使用过:
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="errorlogin">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="errorlogin">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
在我看来,在 is_valid 之后和 is_valid 函数被调用之前:
print(form.errors)
我的代码如下: 视图.py
def lessonRecord(request,id):
if request.method == "POST":
id = Lessons.objects.get(id=id)
form = forms.LessonAddForm(request.POST,instance=id)
if form.is_valid():
form.save()
return redirect('lessons:lessonsView')
else:
print(form.errors)
else:
id = Lessons.objects.get(id=id)
form = forms.LessonAddForm(instance=id , user=request.user)
return render(request,'lessons/lesson_record.html',{'id':id,'form':form})
forms.py
class LessonAddForm(forms.ModelForm):
def __init__(self, user,*args, **kwargs):
super(LessonAddForm, self).__init__(*args, **kwargs)
self.fields['attendees'].queryset = CustomUser.objects.filter(
Q(username=user) |
Q(customuser__username=user)
)
class Meta:
model = models.Lessons
fields = ['attendees']
【问题讨论】:
标签: django django-views