2012-11-19 108 views
1

我在嘗試重寫Django ModelForm字段時遇到了問題。重寫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)

回答

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到您想要的widget類。請注意0​​類中的exclude屬性接受一個列表,如果只有一個列表成員,請不要忘記尾隨逗號。

+0

謝謝你!它非常完美! :) –

0

你爲什麼不定義attrs={'title': 'Seu primeiro nome.'}課外元,然後你可以說widgets = { 'nome' : attrs}