1

当我尝试覆盖 Django ModelForm 字段时遇到问题。

我的models.py是这样的:

from django.db import models

class CadastroParticipantes(models.Model):
    nome = models.CharField(max_length=50)
    sobrenome = models.CharField(max_length=100)
    cpf = models.CharField(max_length=14)
    email = models.EmailField(max_length=100)
    num_cartas_solicitadas = models.IntegerField(default=0)

    def __unicode__(self):
        return self.email

我的 forms.py 是这样的:

from django.forms import ModelForm
from models import *

class FormCadastroParticipante(ModelForm):
    class Meta:
        model = CadastroParticipantes
        fields = ('nome', 'sobrenome', 'cpf', 'email')
        exclude=('num_cartas_solicitadas')
        widgets = { 'nome' : attrs={'title': 'Seu primeiro nome.'}}

当我运行服务器并尝试访问时,我收到以下消息:

**

SyntaxError at /
invalid syntax (forms.py, line 9)

**

有人可以帮我吗?

在此先感谢大家!(Y)

4

2 回答 2

2

您忘记指定小部件类。它应该是这样的:

from django.forms.widgets import TextInput

class FormCadastroParticipante(ModelForm):
    class Meta:
        model = CadastroParticipantes
        fields = ('nome', 'sobrenome', 'cpf', 'email')
        exclude=('num_cartas_solicitadas', )
        widgets = { 'nome' : TextInput(attrs={'title': 'Seu primeiro nome.'}), }

更改TextInput为您想要的小部件类。另请注意,类中的exclude属性Meta接受列表,如果只有一个列表成员,请不要忘记尾随逗号。

于 2012-11-19T12:33:02.300 回答
0

你为什么不定义attrs={'title': 'Seu primeiro nome.'}外部类 Meta 然后你可以说widgets = { 'nome' : attrs}

于 2012-11-19T12:24:55.517 回答