Django modelform - 当表单中的错误显示排除的字段并丢失翻译时?

Django modelform - when errors in the form it is showing excluded fields and losing translations?

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

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

我没有对渲染做任何花哨的事情,我只是在模板中做 {{ form }}

例如这是一个正常的形式

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

型号代码如下:

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']

感谢您的帮助!谢谢!!

让我回答我自己的问题!

所以排除字段的问题是在创建表单时我有一个过时的排除参数(抱歉!),它覆盖了表单的排除。

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

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

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

谢谢!