gpt4 book ai didi

django ModelMultipleChoiceField 查询集/过滤器已关联的对象

转载 作者:行者123 更新时间:2023-12-02 11:42:53 25 4
gpt4 key购买 nike

我有一个与类别有很多关系的配置文件对象


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”

最佳答案

哇,这是 10 年前提出的问题……但我的想法可能对那些会审查这个的开发人员有用。我也遇到过类似的挑战。

简单的方法是将其注释掉:

#category=forms.ModelMultipleChoiceField(
# Category.objects.filter(id__in=your_profile_instance.category.all()),
# widget=forms.CheckboxSelectMultiple()
#)

哈哈,然后在下面列出字段后添加:

widgets = {
'category': forms.CheckboxSelectMultiple,
}

是的....

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method

关于django ModelMultipleChoiceField 查询集/过滤器已关联的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com