我有一个模型和这样的表格:
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,必须是一个带有选项列表的选择字段)?
澄清:按名称我的意思是HTML表单代码中的名称:<input type="select" name="f_category" />
答案 0 :(得分:5)
您的评论会显示您实际需要做的事情 - 这就是为什么您应该始终描述您的实际问题,而不是您提出的解决方案。当然,有一种在Django中同一页面上处理两个相同表单的正确方法 - 在实例化字段时使用prefix
参数。
form1 = MyForm(prefix='form1')
form2 = MyForm(prefix='form2')
现在输出form1和form2时,所有字段都会自动获取相关的前缀,因此它们被正确分开。
答案 1 :(得分:1)
我不确定你的意思是“表格中字段的名称”。你的意思是标签吗?还是身份证?或者是其他东西?配置标签非常简单:
class ContentForm(forms.ModelForm):
category = forms.ModelChoice(queryset=Category.objects.all(), label='f_category')
class Meta:
model=Content
fields = ('title', 'category', )