从基于类的表单UpdateView django收集数据,以便在views.py中使用

时间:2018-06-13 13:00:17

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

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

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函数创建一个表单: views.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,对应于pk = 1的configuration.Num_ordre。

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

如何收集此值?

1 个答案:

答案 0 :(得分:0)

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

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