如何为每个内联对象设置m2m-field不同的查询集?

时间:2011-11-21 18:42:37

标签: python django inlines

所以我有一个以内联形式显示的模型。 该模型有ManyToManyField

想象一下,已经创建了几个内联对象。

问题是如何在我的m2m-field中显示基于原始内联对象的可用对象的不同查询集。

再一次:) 我的意思是每个内联对象必须由m2m-field和不同的可用变体。 变体当然会包括为这个内联对象实际设置的所有变量+它们必须只包含当前不存在的变体。

感谢。

1 个答案:

答案 0 :(得分:1)

问题编写得很糟糕,因此很难确切地确定您要查找的内容,但我最好的猜测是您希望将ManyToManyField的查询集限制为未分配的项目到别的什么?如果这是正确的:

你也没有发布一个示例模型,所以我会用一个来说明

class SomeModel(models.Model):
    my_m2m_field = models.ManyToManyField(OtherModel)

而且,这是基于以下内容限制字段的代码:

class SomeModelInlineAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyInlineAdminForm, self).__init__(*args, **kwargs)

        self.fields['my_m2m_field'].queryset = OtherModel.objects.filter(somemodel__isnull=True)

class SomeModelInlineAdmin(admin.TabularInline):
    model = SomeModel
    form = SomeModelInlineAdminForm