Python 如何使Django模型表单中的字段名与模型字段名不同?

Python 如何使Django模型表单中的字段名与模型字段名不同?,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我有一个模型和一个这样的表格: class Content(models.Model): title = models.CharField(_("title"), max_length=16) category = models.ForeignKey(Category, verbose_name = _('category')) class ContentForm(forms.ModelForm): class Meta: model=Content

我有一个模型和一个这样的表格:

class Content(models.Model):
    title = models.CharField(_("title"), max_length=16)
    category = models.ForeignKey(Category, verbose_name = _('category'))

class ContentForm(forms.ModelForm):
    class Meta:
        model=Content
        fields = ('title', 'category', )
我希望表单中的字段名称为
f_category
(当然,模型中的字段名称将保留为
category
)。是否可以这样做,而不必手动构造整个表单(这很困难,因为该字段是外键,必须是带有选项列表的选择字段)



澄清一下:名称是指HTML表单中的名称代码:

我不确定您所说的“表单中字段的名称”是什么意思。你是说标签吗?还是身份证?还是别的什么?配置标签非常简单:

class ContentForm(forms.ModelForm):
    category = forms.ModelChoice(queryset=Category.objects.all(), label='f_category')
    class Meta:
        model=Content
        fields = ('title', 'category', )

你的评论揭示了你实际上需要做什么——这就是为什么你应该总是描述你的实际问题,而不是你提出的解决方案。当然,在Django中有一种适当的方法来处理同一页面上的两个相同表单——在实例化字段时使用参数

form1 = MyForm(prefix='form1')
form2 = MyForm(prefix='form2')

现在,当您输出form1和form2时,所有字段将自动获得相关前缀,因此它们被正确地分开。

我指的是HTML表单代码中的名称:
我认为这与标签不同。因为我需要在同一模型上使用两种不同的表单,因此,如果两个表单都可以发布到同一个URL,那么每个表单上的字段名称就需要不同。从文档中:仅供进一步阅读。