【问题标题】:Collect data from a class based form UpdateView django for use in views.py从基于类的表单 UpdateView django 中收集数据以在 views.py 中使用
【发布时间】:2018-11-23 01:51:57
【问题描述】:

我有一个基于我的模型“配置”的表单:

models.py

class configuration(models.Model):
    Num_ordre = models.CharField(max_length=15)
    Composant = models.CharField(max_length=15)
    Designation = models.CharField(max_length=15)
    Qte_servie = models.IntegerField()
    Qte_a_servir = models.IntegerField()
    Lot = models.CharField(max_length=15)
    Categorie  = models.CharField(max_length=15)
    Famille = models.CharField(max_length=15)

从这个模型中,我创建了一个带有 UpdateView 函数的表单: 视图.py

class ComposantUpdate(UpdateView):
    model = configuration
    fields = '__all__'
    template_name = 'accueil/exploitation/update_composant.html'
    success_url = reverse_lazy('cahier', args=('OFTSP1611000853',))`

我的问题是,success_url 获取了我手动输入的参数:OFTSP1611000853,它对应于 configuration.Num_ordre for pk=1。

我想将用户写入的数据放在表单的相应字段中,而不是'OFTSP1611000853'。

我如何收集这个值?

【问题讨论】:

标签: python django django-models django-forms django-views


【解决方案1】:

您应该使用get_success_url。在里面获取用户数据然后返回它,像这样:

def get_success_url(self, *args, **kwargs):         
    return reverse_lazy('cahier', kwargs={'pk': self.request.data.get('cahier_id')})

【讨论】:

  • 谢谢,它适用于 self.request.POST.get('numero_ordre') 我不知道 self.request 方法是什么!
  • self.request 几乎可以在您的视图的任何方法中使用。它通常与self.request.POSTself.request.GET 一起使用。 o/
猜你喜欢
  • 2015-03-08
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2022-07-02
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多