首页 文章

是否可以在模型上设置字段大小?

提问于
浏览
1

是否可以在模型上写字段大小?

这是我的form.py的一部分,我想在我的模型上做类似的事情:email = forms.EmailField(label = "Email",widget = forms.TextInput(attrs = { 'size':'60' ,)

我无法在Form上定义此属性,因为我使用了类关系 . 如果我在我的父类上声明"email"并且我的子类赢了使用此字段,它将显示它(模型排除不起作用,因为在父项上声明了"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")
        ...

1 回答

  • 2

    不,无法在模型上定义字段大小 . 您描述的问题排除在父项上定义字段时不对子项进行操作实际上是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
    

    然后,您使用替换,而不是使用父窗体,因此您只在该窗体上获得该字段 .

相关问题