Django ModelForm__init__()修改在添加新的内联表单时不显示

Django ModelForm__init__()修改在添加新的内联表单时不显示,django,django-forms,Django,Django Forms,我有一个Django表单,叫做MyDjangoModelForm。其中,我重写了init函数,以便根据模型对表单进行更改。看起来是这样的: def __init(self, *args, **kwargs)__: super(MyDjangoModelForm, self).__init__(*args, **kwargs) instance = getattr(self, 'instance', None) if instance and instance.pk:

我有一个Django表单,叫做MyDjangoModelForm。其中,我重写了init函数,以便根据模型对表单进行更改。看起来是这样的:

def __init(self, *args, **kwargs)__:
    super(MyDjangoModelForm, self).__init__(*args, **kwargs)

    instance = getattr(self, 'instance', None)
    if instance and instance.pk:
        choice_items = models.MyChoiceItems.objects.filter(myfield=instance.myfield)

    self.fields['choice_field'].widget.choices = [(choiceitem.id, choiceitem) for item in choice_items]
这在我的初始内联表单上非常有效。但是,当我单击“添加另一个内联表单”时,它创建的条目没有应用选项过滤器


如何将此筛选器应用于单击“添加其他…”时添加的表单

如果单击“添加另一个”,则它是一个没有pk的新实例。现在还不清楚在这种情况下您希望选择什么,因为instance.myfield还没有设置。是的,我知道,但我想知道是否有任何方法可以给出pk的上下文?由于它是内联的,我可以访问父窗体中有关模型的数据吗?应该可以将父对象传递给内联的模型窗体,但我不确定必须重写哪些方法。你可以开始看看。本周早些时候,我一直没有得到答案。