1

DjangoModelFormフィールドをオーバーライドしようとすると問題が発生します。

私の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。リストメンバーが1つしかない場合は、末尾のコンマを忘れないでください。

于 2012-11-19T12:33:02.300 に答える
0

なぜあなたはattrs={'title': 'Seu primeiro nome.'}クラスMetaの外で定義しないのですか、そしてあなたは言うことができますwidgets = { 'nome' : attrs}

于 2012-11-19T12:24:55.517 に答える