【发布时间】:2011-05-19 08:54:52
【问题描述】:
我有一个 Profile 对象,它与 Category 具有多对多关系
class Profile(models.Model):
. . .
category = models.ManyToManyField(Category, blank=True)
在我的表单中,我想显示一个仅包含与个人资料关联的类别的复选框 下面的代码将显示所有类别。
class ProfileForm(ModelForm):
. . .
category = forms.ModelMultipleChoiceField(Category.objects.all(),
widget=forms.CheckboxSelectMultiple())
如何编写查询集以便仅显示与配置文件关联的类别? 我有这个的变体:
category = forms.ModelMultipleChoiceField(Category.objects.filter(id__in=Profile.category.all()), widget=forms.CheckboxSelectMultiple())
有这个错误:'ReverseManyRelatedObjectsDescriptor'对象没有属性'all'
【问题讨论】:
-
没关系:我必须在视图中定义查询集。我猜坐与运行时变量 form.fields["category"].queryset = Category.objects.filter(profile=profile) 有关
标签: django forms filter django-queryset