Реверс для 'update' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['moneybooks / update / (? P <pk>[0-9] +) / $ - PullRequest
0 голосов
/ 12 января 2020

Я сделал функцию обновления, но произошла ошибка, как показано ниже:

NoReverseMatch в / moneybooks / 1 / Реверс для 'update' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['moneybooks / update / (? P [0-9] +) / $']

Я пробую много вещей ... но не знаю, в чем проблема .

дата. html

  <a href="{% url "moneybooks:update" moneybooks.pk %}">Update Moneybook</a></br>

views.py

class moneybook_update(UpdateView):
    form_class = forms.UpdateMoneybookForm
    template_name = "moneybooks/update.html"

    def form_valid(self, form):
        moneybook = form.save()
        moneybook.owner = self.request.user
        moneybook.save()
        return redirect(reverse("cores:home"))

url.py

from django.urls import path
from . import views

app_name = "moneybooks"

urlpatterns = [
    path("create/", views.moneybook_create.as_view(), name="create"),
    path("update/<int:pk>/", views.moneybook_update.as_view(), name="update"),
    path("<int:pk>/", views.moneybook_detail, name="detail")
]

form.py

class UpdateMoneybookForm(forms.ModelForm):
    class Meta:
        model = models.Moneybook
        fields = (
            "name",
            "companion",
            "country",
            "location",
            "start_date",
            "end_date",
        )

    def save(self, *args, **kwargs):
        moneybook = super().save(commit=False)
        return moneybook

Ответы [ 2 ]

1 голос
/ 12 января 2020
<a href="{% url 'moneybooks:update' pk=object.pk %}">Update Moneybook</a></br>

В подробном представлении вы получите ваш объект как объект, поэтому object.pk должен работать

1 голос
/ 12 января 2020

Если вы используете двойные кавычки снаружи, тогда используйте одинарные кавычки внутри или наоборот, также не пишите moneybooks.pk напрямую, но pk=moneybooks.pk -

<a href="{% url 'moneybooks:update' pk=moneybooks.pk %}">Update Moneybook</a></br>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...