Я пытаюсь отправить объект, полученный с помощью ModelChoiceField , в представление через URL-адреса и параметры просмотра. Я не думаю, что это правильный метод.Я не знаю, должен ли я использовать метод POST или GET .
Когда я использую метод GET , объект отображаетсяв URL, но вид остается прежним.С помощью метода POST django отправляет сообщения об ошибках о параметрах.
РЕДАКТИРОВАТЬ: Я не помню точные сообщения, я не могу восстановить их сейчас, но, как я помню, они что-то сказаликак Reverse for argument not found
Моя форма
class IndividuForm(forms.Form):
individu = forms.ModelChoiceField(queryset=Individu.objects.all()
Вот представление с формой
def index(request):
individu_form = IndividuForm(request.GET or None)
if individu_form.is_valid():
individu_id = individu_form.cleaned_data['individu'].id
HttpResponseRedirect('%i/raison/' % individu_id)
return render(request, 'derog_bv/index.html', {'individu_form':individu_form})
Шаблон, где отображается форма
<form action="{% url 'index' <!-- Errors when I put parameters here --> %} method="<!-- GET or POST -->">
{% csrf_token %}
{{ form }}
<input type="submit">Suivant</input>
</form>
Вид, где я хочу получить свой объект
def raison(request, """ error with this parameter : individu_id"""):
individu = get_object_or_404(Individu, pk=individu_id)
URLs
urlpatterns = [
path('', views.index, name='index'),
path('<int:individu_id>/raison/', views.raison, name='raison'),
]