【问题标题】:Django use the current url parameters to pass it to a formDjango 使用当前 url 参数将其传递给表单
【发布时间】:2020-06-05 03:46:38
【问题描述】:

我需要使用当前的 url 参数并将其传递给表单。问题是我正在使用 Dango-tables2 在表格中显示结果,所以我想为该特定结果添加付款 使用“Agregar Pago”按钮

我尝试获取值“1”和“2020-W08”但没有成功,因此我可以使用字段初始化表单:

  • 卡罗=1
  • semana = 2020-W08

和其他字段准备好供用户键入值。因此,用户只需输入值并应用于特定的 carro 和 semana。

在我尝试过的html标签中:

<a href={% url 'pagoaexistente' request.get_full_path %}><button type="button" class="btn btn-primary" >

但它在 1 个参数中为我提供了完整的路径,这不是我想要的。

我还没有找到从表中获取这两个值的方法,比如说从第一行获取 carro 和 semana,但我觉得这样做是不正确的。

【问题讨论】:

  • 为什么要将这些数据视图传递给带有上下文的模板?
  • 我不明白。您在图片中看到的数据已经被过滤,所以我想在相同的过滤数据中添加另一条记录,想法是将参数传递给要初始化的表单,这些参数是“carro”和“semana” '

标签: django django-forms django-urls django-tables2


【解决方案1】:

我在这里找到了答案:

How to get parameters from current url

这就是它对我的工作方式:

<a href={% url 'pagoaexistente' request.resolver_match.kwargs.carro request.resolver_match.kwargs.semana %}><button type="button" class="btn btn-primary" >

我得到了 2 个参数。

干杯!

更新

我对 HTML 标记进行了另一项更改:

<a href={% url 'pago_existente' carro=request.resolver_match.kwargs.carro semana=request.resolver_match.kwargs.semana %}><button type="button" class="btn btn-primary" >

而且我的看法是这样的:

views.py

class AgregarPagoSemana(CreateView):

    template_name = "AC/add_paymentexistingweek.html"
    model = Pagos
    form_class = AgregarPagoTransaccionExistente

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context.update({
            'semana': self.kwargs['semana'],
            'carro': self.kwargs['carro'],
        })
        return context

    def get_form_kwargs(self):
        kwargs = super(AgregarPagoSemana, self).get_form_kwargs()
        kwargs['carro'] = self.kwargs.get('carro')
        kwargs['semana'] = self.kwargs.get('semana')
        return kwargs

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 2020-04-13
    • 2013-01-17
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2016-01-11
    相关资源
    最近更新 更多