2011-07-18 17 views
1

モデルにフィールドサイズを書き込むことはできますか?モデルにフィールドサイズを設定することは可能ですか?

これは私のform.pyの一部であり、私は私のモデルにそれのような何かをしたいと思います:= forms.EmailField(ラベル= "メール" メール、ウィジェット= forms.TextInput(attrsに= {"サイズ「:」60'、)

私はクラスの関係を使用するので、私はフォームにこの属性を定義can't私は私の親クラスの 『電子メール』を宣言し、私の​​子供のクラスは、このフィールドを使用することを獲得した場合。それが表示されます(親は "email"属性が宣言されているため、モデルは除外されます)

models.py

class UserProfile(models.Model): 
    nome = models.CharField('Nome Completo',max_length=100) 
    endereco = models.CharField('Endereço',max_length=100) 
    ... 

forms.py

class **cadastrousuarioForm**(formulariocadastrocompleto): 
    nome = forms.CharField(label = 'Nome',widget=forms.TextInput(attrs={'size':'30','maxlength':'100'})) 
    ... 

class atualizacaoousuarioForm(**cadastrousuarioForm**): 

    class Meta (cadastrousuarioForm): 
     model = UserProfile 
     fields = ("endereco",) 
     exclude = ("nome") 
     ... 

答えて

2

いいえ、フィールドのサイズは、モデルで定義することはできません。親にフィールドが定義されているときにexcludeで説明した問題は、実際にはDjangoのオープンバグです。ある意味では、あなたの不満は正当だが、残念ながら多くの選択肢はありません。あなたがミックスインしようとする場合があります

class MyFieldMixIn(forms.ModelForm): 
    my_field = forms.CharField(label = 'Nome',widget=forms.TextInput(attrs={'size':'30','maxlength':'100'})) 

class ParentForm(forms.ModelForm): 
    # Common functionality, fields, etc. here 

class ReplacementParentForm(ParentForm, MyFieldMixIn): 
    pass 

class ChildForm(ParentForm): 
    # Child-specific stuff here 

その後、代わりにあなただけのそのフォームにそのフィールドを取得するので、あなたは、交換を使用して親フォームを使用します。

関連する問題