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

2024-04-25 05:39:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)。是否可以这样做,而不必手动构造整个表单(这很困难,因为字段是ForeignKey,必须是一个带有选项列表的select字段)?在


澄清一下:我所说的名称是指HTML表单代码中的名称:<input type="select" name="f_category" />


Tags: name模型名称表单modeltitlemodelscontent
2条回答

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

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时,所有字段将自动获得相关的前缀,因此它们被正确地分开。在

相关问题 更多 >