繁体   English   中英

Django-默认表单字段的值

Django - Defaulting a Form Field's Value

提示:本站收集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})

编辑

这是加载时默认使用status字段的方式: 负载

保存后,该值仍然存在,但是该表单抱怨: 在此处输入图片说明

使用readonly作为属性会使字段变为只读,但仍可以对其进行编辑: 在此处输入图片说明

1 个回复

在视图中实例化表单时,需要添加初始值。 像这样

form = ArticleForm(initial={'headline': 'Initial headline'}, instance=article)

此处检查Django文档是否有模型表格。

希望这可以帮助!

1 Django-注册表单字段的默认值

我正在使用django django注册表格,所以我的Registe表格如下所示 但是,当我进入注册页面时,某些字段已经用我用来登录超级用户的值填写了,我想将它们设置为空或具有诸如something@somthing.com之类的默认值,但是我不知道该怎么办我做 我正在使用Django ...

2 Django-表单字段的值作为另一个表单字段的默认值

我想填写我的表单域(URL),并在下一个表单域(在另一个视图中)使用该URL作为默认值。 我无法切换视图并采用该表单值。 有什么建议吗? 这是我的文件: views.py forms.py: urls.py ] models.py: ...

2017-01-07 01:23:05 0 89   django
3 Django-以其他表单字段的形式显示计算值

我是Django的初学者,我有这种情况:客户想知道以当地货币计算的总和。 他填写表格( ModelForm ),在其中指示金额和国家/地区,然后程序以当地货币计算等值金额。 填写表格中的国家和金额字段后,新的金额已正确计算并保存在数据库中,但是等效的金额字段在显示的表格中没有更改。 ...

5 Django-将表单字段与模型表单字段组合

使用Django 1.8,我尝试呈现一种表单,其中某些字段来自数据库,例如下面的多对多字段,而其他字段则根本不在数据库中: 为什么在我的模板页面上看不到成绩单以及如何呈现? ...

6 Django-动态更改表单字段

我有一个简单的表格将网站添加到数据库。 这是我的网站模型: Forms.py 我想通过在用户在组字段(“ Premium”)中选择值之后添加“ Category1”,“ Subcategory1”字段来更改表单。 表单应重新加载自身并显示这些字段。 在选择“ Premium ...

2017-01-21 23:30:58 1 832   django
7 Django-如何排除表单字段视图?

如果用户具有特定属性,我有一个排除字段的问题。 我尝试根据此技巧使用is_staff选项进行测试,但无法使其正常工作。 我收到错误消息: __init__() got an unexpected keyword argument 'user' 如果用户是职员,谁能告诉我如何排除某些 ...

8 Django-使表单字段只读

我有一个Django网络应用,其表单以初始数据初始化。 用户可以更新表单中的信息并提交更改。 我想在周末禁用表单输入,使字段为只读。 有没有一种方法可以将表单中的所有字段切换为只读(可能来自django admin)? ...

9 django-表单字段上的动态查询

可以说我有一个包含一些字段的表格。 我想知道是否有可能进行动态查询,以便在用户在字段中键入内容时可以进行字符串匹配。 就像在google中键入内容时一样,当您在搜索栏中键入内容时,它会返回选择列表。 有人可以给我一个例子,说明如何以及在何处实施它吗? ...

10 Django - 关于formset表单字段的KeyError

所以每次我尝试提交一个formset时,我都会得到一个KeyError。 我在此之前问了一个类似的问题,解决方案似乎工作了一段时间,但现在我得到了上面提到的KeyError。 代码和跟踪如下: 形成: 视图: 模板: 追踪: 我究竟做错了什么? 我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM