[英]Django AttributeError: 'str' object has no attribute 'model'
I have the below form; 我有以下表格;
class RemoveMemberForm(Form):
member = forms.ModelChoiceField(queryset="",
empty_label='Choose a Member',
)
And the below views; 以及以下观点;
class StationHome(View):
def get(self, request, pk):
station = Station.objects.get(pk=pk)
channels = Channel.objects.filter(station=station)
members = station.members.all()
form1 = AddMemberForm()
form2 = RemoveMemberForm()
form2.fields['member'].queryset = station.members.all()
return render(request,
"home_station.html",
{"station":station,
"form1":form1,
"form2":form2,
"channels":channels,
"members":members,
},
)
class MemberRemove(View):
def post(self, request, pk):
form = RemoveMemberForm(request.POST)
if form.is_valid():
Station.objects.get(pk=pk).members.remove(
form.cleaned_data['member']
)
return HttpResponseRedirect(reverse("home_station",
kwargs={'pk':pk},
)
)
What I am trying to do is have the second view delete the selected member and redirect to the first view. 我想做的是让第二个视图删除所选成员并重定向到第一个视图。 But instead I'm stuck at
AttributeError at /station/2/removemember
, the URL corresponding to the second view, 'str' object has no attribute 'model'
但是相反,我卡在
AttributeError at /station/2/removemember
,对应于第二个视图的URL, 'str' object has no attribute 'model'
This is because you specified: 这是因为您指定了:
queryset=""
In your form. 以您的形式。 Use a queryset instead (eg
queryset=Member.objects.all()
). 改用查询集(例如
queryset=Member.objects.all()
)。
您不能有一个空的查询集,更改它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.