是否可以在Model上编写字段大小?
这是我的 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")
...
答案 0 :(得分: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
然后,您使用替换代替使用父窗体,因此您只能在该窗体上获取该字段。