python – Django AttributeError:’InterestsForm’对象没有属性’_errors’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django AttributeError:’InterestsForm’对象没有属性’_errors’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1886字,纯文字阅读大概需要3分钟。
内容图文
![python – Django AttributeError:’InterestsForm’对象没有属性’_errors’](/upload/InfoBanner/zyjiaocheng/746/822556d3ba744b33acdbf792833215bf.jpg)
我正在尝试使用Django表单来允许Django用户输入他们最喜欢的三个兴趣.在模板呈现期间发生错误,其中显示{{form.as_ul}}.
这是代码:
reg_interests.html
{% block content %}
<br><br>
<h1>Choose the 3 things that interest you most!</h1>
<form method="post" action="/reg_interests/">
{% csrf_token %}
{{form.as_ul}}
<br>
<p class="submit"><input class="btn btn-default" type="submit" name="commit" value="Continue"></p>
</form>
{% endblock %}
views.py
def reg_interests_view(request):
if request.POST:
form = InterestsForm(request.POST, request=request)
if form.is_valid():
form.save(request)
return redirect('/reg_video/')
args = {}
args['form'] = InterestsForm(request=request)
return render(request, 'login/reg_interests.html', args)
forms.py
class InterestsForm(RequestModelForm):
interest1 = forms.ChoiceField(choices=[(1, "Option 1"), (2, "Option 2")])
interest2 = forms.ChoiceField(choices=[(1, "Option 1"), (2, "Option 2")])
interest3 = forms.ChoiceField(choices=[(1, "Option 1"), (2, "Option 2")])
class Meta:
model = Interest
fields = ('interest1', 'interest2', 'interest3')
def __init__(self, request):
self.user = request.user
def save(self, commit=True):
interest = super(InterestsForm, self).save(commit=False)
interest.user = self.user
interest.interest1 = self.cleaned_data['interest1']
interest.interest2 = self.cleaned_data['interest2']
interest.interest3 = self.cleaned_data['interest3']
if commit:
interest.save()
return interest
我认为表单存在问题,但我不知道如何或为什么需要定义_errors. Django本身不应该照顾它吗?如果没有,我该如何定义_errors?
解决方法:
这段代码根本不可能工作,因为你覆盖了表单的__init__方法,以便a)你只接受一个请求参数 – 而不是表单所期望的任何其他东西,比如数据或初始 – 和b)你永远不会调用超类init方法来初始化表单代码所需的其余内容.您需要保留签名并调用super.
def __init__(self, *args, **kwargs):
request = kwargs.pop('request')
self.user = request.user
super(InterestsForm, self).__init__(*args, **kwargs)
内容总结
以上是互联网集市为您收集整理的python – Django AttributeError:’InterestsForm’对象没有属性’_errors’全部内容,希望文章能够帮你解决python – Django AttributeError:’InterestsForm’对象没有属性’_errors’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。