Django模型 - 当表单中的错误显示排除字段和丢失翻译?

时间:2015-04-13 21:50:37

标签: python django django-models django-forms

我看到我的模型表现出一种奇怪的行为。如果我提交并且字段有错误,当我重新显示错误时,会出现排除的字段。还发生了这些字段被翻译成西班牙语并且我在原始英语中获得标签。

我使用django 1.6.10,有人知道这是一个错误还是我做错了什么?

我没有对渲染做任何想象,我只是在模板中做{{ form }}

例如,这是一种正常形式

enter image description here

但是,如果我将字段提交为空,我会获得额外排除字段“notes”和原始字段的英文名称“plate number”:

enter image description here

以下是型号代码:

class Operation3Domain(models.Model):
    operation    = models.ForeignKey(Operation, unique=True)
    date         = models.DateTimeField(auto_now_add=True)
    update_date  = models.DateTimeField(auto_now=True)
    notes        = models.TextField(blank=True, null=True)
    #this one is the only one I want to show:
    plate_number = NumberPlateField()
    class Meta:
        app_label = "operation"

和模型形式:

class Operation3DomainForm(forms.ModelForm):
    class Meta:
        model   = Operation3Domain
        labels  = { 'plate_number': 'Dominio/Patente'}
        exclude = ['operation', 'notes']

我感谢任何帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

让我回答我自己的问题!

因此,排除字段的问题在于,在创建表单时,我有一个过时的排除参数(抱歉!),这会覆盖表单的排除。

form_class = modelform_factory(step_model, exclude=('operation',))
form = form_class(request.POST, instance=instance)

BUT!我仍然不知道为什么表单会以英文而不是西班牙语出现,如果我直接使用表单类,则不会发生这种情况:

form = Operation3DomainForm(request.POST, instance=instance)

谢谢!