Django AttributeError:'str'对象没有属性'model' [英] Django AttributeError: 'str' object has no attribute 'model'
本文介绍了Django AttributeError:'str'对象没有属性'model'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下表单;
class RemoveMemberForm(Form):
member = forms.ModelChoiceField(queryset="",
empty_label='Choose a Member',
)
和下面的观点;
$ b
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},
)
)
我想要做的是将第二个视图删除所选成员并重定向到第一个视图。但是,我被卡在/ station / 2 / removemember 的 AttributeError,与第二个视图相对应的URL
'str'对象没有属性'model'
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'
推荐答案
这是因为你指定了:
queryset=""
在你的形成。使用查询代替(例如 queryset = Member.objects.all()
)。
In your form. Use a queryset instead (e.g. queryset=Member.objects.all()
).
这篇关于Django AttributeError:'str'对象没有属性'model'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文