我有一个与Category
有很多关系的Profile对象
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'
答案 0 :(得分:0)
据我所知,关系“类别”只能与Profile 实例(提供相关类别)相关联,而不能与类Profile本身相关联。这就是您收到错误消息的原因。
如果您在示例中使用实际的Profile实例替换了Profile(我读到的是您实际尝试实现的内容),那么它会更好。
category=forms.ModelMultipleChoiceField(
Category.objects.filter(id__in=your_profile_instance.category.all()),
widget=forms.CheckboxSelectMultiple()
)
或只是
category=forms.ModelMultipleChoiceField(
queryset=your_profile_instance.category.all()),
widget=forms.CheckboxSelectMultiple()
)
我是否正确理解了您的问题?
答案 1 :(得分:0)
哇,这是 10 年前问过的……但我的想法可能对将要审查此问题的开发人员有用。我也遇到过类似的挑战。
简单的方法是注释掉这个:
stages:
- test
- package
- deploy
- cleanup approval
- cleanup
build docker image review app:
stage: package
script:
- echo hello
rules:
- if: $CI_MERGE_REQUEST_ID
deploy review app:
stage: deploy
image: alpine/helm:3.5.0
dependencies: []
script:
- echo hello
environment:
name: review/$CI_PROJECT_NAME-$CI_MERGE_REQUEST_ID
url: https://$CI_PROJECT_NAME-$CI_MERGE_REQUEST_ID.reviewapps.tdhb2bdev.com
on_stop: stop review app
auto_stop_in: 1 day
needs:
- build docker image review app
rules:
- if: $CI_MERGE_REQUEST_ID
stop review app:
stage: cleanup approval
script:
- echo helm uninstall xxxx
- echo aws ecr batch-delete-image xxxx
dependencies: []
environment:
name: review/$CI_PROJECT_NAME-$CI_MERGE_REQUEST_ID
action: stop
needs:
- deploy review app
rules:
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
lol 然后在下面,在列出字段后添加:
#category=forms.ModelMultipleChoiceField(
# Category.objects.filter(id__in=your_profile_instance.category.all()),
# widget=forms.CheckboxSelectMultiple()
#)
是的....
https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method