0

在自定义 ModelForm 中,我想要一个 HiddenInput 字段,该字段具有模型的 Autofield 主键的值。如果在没有模型的情况下创建表单,则此字段将为无。如果提供模型来实例化表单,它应该包含模型的 Autofield ID。这可能吗?我在想这样的事情:

class MyCustomForm(forms.ModelForm):
    the_id = forms.HiddenInput()

    def __init__(self, *args, **kwargs):
        super(MyCustomForm, self).__init__(*args, **kwargs)
        self.fields["the_id"].initial = args.get('id', None)
4

1 回答 1

1

所以在挖掘之后我遇到了这个:

https://groups.google.com/forum/?fromgroups=#!topic/django-users/vmIXXr5tsdI

这指出 ModelForms 没有 HiddenInput 字段。我应该更仔细地阅读文档。这是我最后的结果:

MyCustomForm(forms.ModelForm):
    the_id = forms.IntegerField(widget=forms.HiddenInput)

    def __init__(self, *args, **kwargs):
        super(MyCustomForm, self).__init__(*args, **kwargs)

        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields["the_id"].initial = instance.id
于 2012-09-26T18:09:16.663 回答