Django 使用当前 url 参数将其传递给表单

Django use the current url parameters to pass it to a form

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

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

和其他字段已准备好供用户键入值。因此,用户仅输入值并应用于特定的卡罗和周报。

在我的 html 标签中我已经尝试过:

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

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

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

我在这里找到了答案:

这就是我的工作方式:

<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