我有一個在Django中提交新文章的表單,在這種形式下,您可以將該文章放置到'user_group'中,這只是組和用戶之間的許多關係。但是,您只能將其添加到您所屬的組中。使用表單類i的init函數可以傳遞額外的字段,並且我確實得到了我需要的正確選擇,但是在提交時我得到一個錯誤''QueryDict'對象沒有屬性'all''在Django中動態生成的表單選擇
I也不太清楚怎麼回事錯了,我的繼承人形式:
class PostForm(BaseModelForm):
new_image = forms.ImageField(required=False)
#GROUPS = user.groups.all()
#group = forms.ChoiceField(choices=GROUPS, required=False)
def __init__(self,groups, *args, **kwargs):
super(PostForm, self).__init__(*args, **kwargs)
self.fields['group'].queryset = groups
class Meta:
model = Post
fields = ('title','category', 'group', 'text', 'description', 'style')
help_texts = {
'group': _('Do you want this published under your account or a group?')
}
和繼承人在那裏被拋出的錯誤觀點:
@login_required
def post_new(request):
if request.method == "POST":
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.save()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm(groups=request.user.user_groups.all())
return render(request, 'blog/post_edit.html', {'form': form})
這條線:
form = PostForm(groups=request.user.user_groups.all())
是我在哪裏通過團體的選擇,這會給你正確的選擇。錯誤發生在提交的事實使我認爲它是一個視圖如何處理它的錯誤,但林不知道在哪裏。
請修復縮進。具體而言,「類Meta」是否應該嵌套在「類PostForm」內部還不清楚。 – mkrieger1
您的模型窗體應該繼承'models.ModelForm',而不是'BaseModelForm'。 – Alasdair
BaseModelForm是我用來將引導類添加到表單的擴展 –