【发布时间】:2016-06-04 00:34:06
【问题描述】:
为什么他在我的 ModelForm 中无法识别我的视图实例“访问”?
我有这个错误:name 'instance' is not defined
我的表格:
class ReplyForm(forms.ModelForm):
def __init__(self, *args,**kwargs):
super (ReplyForm,self ).__init__(*args,**kwargs)
self.fields['question'].queryset = Question.objects.get(page=instance)
class Meta:
model = Reply
还有我的views.py:
def access(request, instance):
length_questions = len(questions)
ReplyFormSet = modelformset_factory(model=Reply, form=ReplyForm, extra=length_questions, can_delete=True)
formset = ReplyFormSet(request.POST)
if request.method == 'POST':
formset = ReplyFormSet(request.POST, request.FILES)
if formset.is_valid():
new_instances = formset.save(commit=False)
for new_instance in new_instances:
new_instance.user = logged_user
new_instance.save()
return HttpResponseRedirect('/baseVisite/')
else:
return render_to_response('polls/error.html', context_instance=RequestContext(request))
else:
formset = ReplyFormSet(queryset=Reply.objects.none())
return render_to_response('polls/access.html', {
'formset': formset,
'questions':questions,
'logged_user':logged_user,
'numPages' : numPages
})
编辑网址:
url(r'^access/(?P<instance>[0-9]+)/$', views.access),
【问题讨论】:
-
嗯,你认为它是在哪里定义的?
-
在我的访问功能的早期,但我不知道如何使我的 ModelForm 他能够识别
-
在我的表单中,这行不起作用:
self.fields['question'].queryset = Question.objects.get(page=instance)因为实例没有定义但我该如何定义?
标签: python django forms modelform