python - 表单中没有邮件默认值
问题描述
我正在使用一个表单 django,我想要已经在我的模型中定义的值。但是邮件的默认值没有显示在表单中。为什么?
表格.py
class ForeningForm(ModelForm):
class Meta:
model = Forening
exclude = ['ordf','kass','adress']
fields=['fname','fphone','mail','homepage','direktansk','anslutenannat',\
'anteckningar','uppdaterad']
模型.py:
class Forening(Model):
fname=CharField(default='missing',max_length=100)
ordf=OneToOneField(Person,on_delete=CASCADE,related_name='ordf')
kass=OneToOneField(Person,on_delete=CASCADE,related_name='ka')
fphone=PhoneField(default='9999999999')
adress=OneToOneField(Adress,on_delete=CASCADE,related_name='ad')
mail=EmailField(default='missing@gmail.com')
homepage=TextField(max_length=400,default='www.homepage.com')
direktansk=BooleanField(default=False)
anslutenannat=BooleanField(default=False)
anteckningar=TextField(max_length=500,default='missing')
uppdaterad=DateTimeField(default=timezone.now)
def __str__(self):
return 'förening: ' + self.fname
class Meta:
ordering=('fname','ordf')
视图.py:
class Fcreate(CreateView):
form_class=ForeningForm
template_name='kammem/create.html'
def form_valid(self,form)
fname=form.cleaned_data['fname']
venue=form.cleaned_data['venue']
fphone=form.cleaned_data['fphone']
mail=form.cleaned_data['mail']
homepage=form.cleaned_data['homepage']
direktansk=form.cleaned_data['direktansk']
anslutenannat=form.cleaned_data['anslutenannat']
antekningar=form.cleaned_data['antekningar']
uppdaterad=form.cleaned_data['uppdaterad']
解决方案
不显示默认值,因为模型不需要字段值(因为它具有默认值,即使用户没有填写此字段也不会设置为空白)。对于您的问题,最简单的解决方案可能是使用添加到表单实例化调用的字段的初始值来覆盖get_form方法:
class Fcreate(CreateView):
form_class=ForeningForm
template_name='kammem/create.html'
...
def get_form(self, form_class=None):
if form_class is None:
form_class = self.get_form_class()
form_kwargs = self.get_form_kwargs()
form_kwargs.update(
{'initial' : {'email': 'missing@gmail.com'}}
)
form = form_class(**form_kwargs)
return form
推荐阅读
- sql - 插入触发器来操作现有行的时间戳
- r - 根据长度确定句子是奇数还是偶数,并在R中显示它是奇数还是对
- json - 将数据框解析为 json 模式
- firebase - 如何从 url 检测视频时长?
- html - CSS 过渡不工作,它之前工作
- azure-functions - Swagger 如何同时显示同一 Azure 函数的 put 和 get 版本?
- flutter - 尝试使用 Agora for Flutter,版本似乎有问题
- sql - 按主题排序结果,升序。为什么将主题放在“ASC”之后?
- ios - 使用 Swift 将照片保存到图库中的文件夹
- vaadin - 如何使 vaadin Grid 单元格中的文本换行