Django использовать текущие параметры URL, чтобы передать его в форму - PullRequest
0 голосов
/ 20 февраля 2020

Мне нужно использовать текущие параметры URL и передать его в форму. Дело в том, что я отображаю результаты в таблице, используя Dan go -tables2, поэтому я хочу добавить payemnt к этим конкретным c результатам, используя кнопку 'Agregar Pa go'

enter image description here

Я безуспешно пытался получить значения '1' и '2020-W08', чтобы я мог инициализировать форму с полями:

  • carro = 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, но я считаю, что это неправильно это так.

1 Ответ

0 голосов
/ 21 февраля 2020

Я нашел ответ здесь:

Как получить параметры из текущего 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
...