我正在使用django django注册表格,所以我的Registe表格如下所示 但是,当我进入注册页面时,某些字段已经用我用来登录超级用户的值填写了,我想将它们设置为空或具有诸如something@somthing.com之类的默认值,但是我不知道该怎么办我做 我正在使用Django ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
当我要通过UI创建模型实例时,我想默认一个字段(假设'status'值为'draft')。 我试图在init ()的表单中执行此操作:**模型**
class ForecastConfiguration(Control):
uuid = kp.ObjectIDField()
name = kp.ObjectNameField()
description = kp.ObjectDescriptionField()
status = models.ForeignKey(Status, blank=False, null=False, editable=True, on_delete=models.PROTECT)
形成
class ForecastConfigurationCreateForm(forms.ModelForm):
class Meta:
model = ForecastConfiguration
exclude = ['uuid', 'hierarchy_nodes']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# default status
self.fields['status'] = ModelChoiceField(queryset=ObjectStatus.get_object_status_list(self, is_form=True))
# status is defaulted when created; will get updated by planning element status
self.fields['status'].widget.attrs['disabled'] = True
效果很好:该值为默认值。 但是,当我提交表单时,出现验证错误,指出该字段不能为空,并且在表单中,该值为空。
我也尝试在视图中执行此操作(结果相同):
视图
class ForecastConfigurationCreateView(CreateView):
model = ForecastConfiguration
form_class = ForecastConfigurationCreateForm
template_name = 'frontend/base/planning_create.html'
object = None
# success_url = ''
def get(self, request, *args, **kwargs):
# default status to 'Draft'
status_id = Status.objects.get(name=constant.status['draft']).uuid
form = ForecastConfigurationCreateForm(initial={'status': status_id})
member_formset = MemberFormSet()
return render(request, self.template_name, {'form': form, 'member_formset': member_formset})
编辑
在视图中实例化表单时,需要添加初始值。 像这样
form = ArticleForm(initial={'headline': 'Initial headline'}, instance=article)
在此处检查Django文档是否有模型表格。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.