当我尝试覆盖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)
答案 0 :(得分: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
属性接受列表,如果只有一个列表成员,请不要忘记尾随逗号。
答案 1 :(得分:0)
为什么不在Meta类之外定义attrs={'title': 'Seu primeiro nome.'}
然后你可以说widgets = { 'nome' : attrs}