当前位置: 首页 > 面试题库 >

在基于类的通用视图中将初始值设置为modelform

郏博瀚
2023-03-14
问题内容

我正在使用基于类的通用视图,有人可以建议我如何设置初始值以更新表单吗?

我尝试使用get_initial()方法,但未成功。以下是我尝试的代码

  class IncidentUpdateView(UpdateView):
      form_class = IncidentForm
      form_class.initial = {"badge_number": '88888'}
      model = Incident
      template_name = 'hse/incident/incident_update.html'

     def get_initial(self, form_class):
        initials = {
         "badge_number": '88888'
         }
        form = form_class(initial=initials)
       return form

     def get_success_url(self):
        return reverse_lazy('hse-incident', args=[self.object.id])

问题答案:

您应该定义一个get_initial方法,该方法返回包含初始值的字典:

class IncidentUpdateView(UpdateView):

    def get_initial(self):
        return { 'value1': 'foo', 'value2': 'bar' }

另外,您可以定义一个initial值:

class IncidentUpdateView(UpdateView):
    initial = { 'value1': 'foo', 'value2': 'bar' }


 类似资料:
  • 问题内容: 所以我有一个模型,其中包括: 我的看法是这样的: 有没有办法让我访问request.user并将created_by设置为该用户?我浏览了所有文档,但似乎找不到任何提示。 问题答案: 如何覆盖保存表单?自己保存它,对它进行任何操作,然后进行重定向。

  • 问题内容: 有没有办法从基于类的视图中获取信息? 例如,我有 我唯一能想到的就是添加 上课。但这看起来很丑。还有另一种方法吗? 问题答案: 你可以从班级中的任何地方访问(因此) https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-display/#dynamic-filtering 进行这项工作的关键部分是,

  • 问题内容: 我希望该帖子确实被csrf停止了,但是它返回403错误。 但是,如果删除该装饰器并在URLConf中执行此操作 它会工作。 这里发生了什么?它不应该工作,因为我猜那是method_decorator所做的。我正在使用python3.4和django1.7.1 任何建议都很好。 问题答案: 你需要装饰工作方法。它所做的是将视图函数本身的属性设置为,然后中间件在(最外面的)视图函数中对此进

  • 我试图做一个条形图,它将显示数据超过和低于基础起点,这不是0。 我尝试使用yAxes缩放选项的最小值和最大值,但它只是隐藏了超过设置最小值/最大值的条形图,并将“beginAtZero”设置为false。

  • 当安装完成并首次启动 Navicat Monitor 时,浏览器会弹出并打开你的 Navicat Monitor 的网址“http://<your_ip_address>:<port_number>”。你需要在欢迎页面完成 Navicat Monitor 的基本配置。 【注意】<your_host_address> 是安装了 Navicat Monitor 的系统的主机名,以及 <port_num

  • 这是我的代码。我需要在x和y轴刻度中将初始值设置为“0”。我尝试了最新的版本刻度选项。