Возникли проблемы Django genieri c UpdateView с UUID - PullRequest
0 голосов
/ 21 марта 2020

Я застрял с этой проблемой уже несколько часов, наверное, я безумно ошибся, но не вижу ее. Я пытаюсь использовать UpdateView следующим образом:

class ContributorEditView(UpdateView):
     model = Contributor
     template_name = "contributor/edit.html"
     slug_url_kwarg = 'uid'
     slug_field = 'uid'
     form_class = ContributorModelForm
     success_url = 'word/list'

     def get_queryset(self, *args, **kwargs):
         qs = super().get_queryset()
         print('args : ', args, " / ", kwargs)
         print('qs : ', qs)
         return qs

с этой моделью:

class ContributorModelForm(ModelForm):
     class Meta:
         model = Contributor
         fields = '__all__'

и этим самым базовым html, чтобы просто проверить:

<form method="post" action="{% url 'contributor-edit' object.uid %}">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update">

и мой URL-адрес указан ниже:

path('edit/<uuid:uid>', views.ContributorEditView.as_view(), name='contributor-edit'),

Я получаю эту ошибку ниже, и я пытаюсь хотя бы проверить, есть ли мой uid в get_queryset в качестве аргумента так что я могу вручную выполнить набор запросов к базе данных, но у меня ничего нет.

NoReverseMatch по адресу / account / edit / 40acc93b-538 c -44aa-9493-56887b5b430d

Обратное для "contributor-edit" без аргументов не найдено. Попробован 1 шаблон (ов): ['account \ / edit \ / (? P [0-9a-f] {8} - [0-9a-f] {4} - [0-9a-f] {4} - [0-9a-f] {4} - [0-9a-f] {12}) $ ']

Метод запроса: GET URL запроса: http://localhost: 8000 / account / edit / 40acc93b-538 c -44aa-9493-56887b5b430d

Заранее спасибо

...