2015-05-15 128 views
1

我有下面的表單;Django AttributeError:'str'對象沒有屬性'model'

class RemoveMemberForm(Form): 
    member = forms.ModelChoiceField(queryset="", 
            empty_label='Choose a Member', 
    ) 

而下面的觀點;

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}, 
            ) 
          ) 

我想要做的是有第二個視圖刪除選定的成員,並重定向到第一個視圖。而是我被困在AttributeError at /station/2/removemember,對應於第二視圖中的URL,'str' object has no attribute 'model'

回答

5

這是因爲你指定:

queryset="" 

在您的形式。改用查詢集(例如queryset=Member.objects.all())。

3

你不能有一個空的查詢集,改變它。

相關問題