@Vitalii181190
Начинающий вэб-разработчик

Как правильно прописать url для crispy form?

Хочу вывести форму через crispy form, но не знаю как прописать урл с pk
forms.py
self.helper.form_action = reverse('games_detail', kwargs={'currency_pk': ?})

в обычном шаблоне в форме прописываеться просто
{% url 'name' context_object_name %}
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
@5465
Для того, чтобы правильно прописать URL с параметром в Crispy Forms, вам необходимо использовать функцию reverse() из Django для генерации URL на основе имени представления и параметров, переданных через kwargs.

Также вы можете использовать переменную self.instance.pk для получения значения первичного ключа модели, с которой работает форма.

Пример кода для формы с параметром currency_pk:

from django.urls import reverse

class MyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_method = 'post'
        self.helper.form_action = reverse('games_detail', kwargs={'currency_pk': self.instance.pk})
        
    class Meta:
        model = MyModel
        fields = '__all__'


В этом примере мы используем функцию reverse() для генерации URL на основе имени представления games_detail и передаем значение первичного ключа модели через self.instance.pk. Это означает, что при отправке формы данные будут отправлены на URL, содержащий параметр currency_pk с соответствующим значением.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы