如何在 Django 中向 ModelForm 添加非模型字段?

Gra*_*ntU 2 django django-forms

我希望这是有道理的,这就是我想做的(无论出于何种原因)

我想在我的模型表单中创建一个非模型表单字段

例如,下面我有一个模型表单,我想在init中添加一个 不包含在名为template的模型中的额外字段。我不保存这个新字段,因此它不需要在我的模型中,或者我希望它在我的模型中(我用它做了一些花哨的 ajax 东西。)。

表格.py

class testForm(forms.ModelForm):
    def __init__(self, user=None, *args, **kwargs):
        super(testForm, self).__init__(*args, **kwargs)
        if user is not None:
            this_templates = Template.objects.for_user(user)

         self.fields["templates"] = forms.??????????
Run Code Online (Sandbox Code Playgroud)

ari*_*rie 5

你就快到了:

self.fields["templates"] = forms.CharField()
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢其他字段类型,请查看文档以了解可能的选项。

有关其他背景信息,请查看重载 Django 表单字段