Как передать первичный ключ в URL для редактирования информации об объектах? - PullRequest
1 голос
/ 21 мая 2019

У меня есть модель под названием Porumbei, и я хочу создать представление для редактирования этих объектов. Как мне известно, как я могу написать это представление, передавая первичный ключ в URL?URL-адрес, который мне нужен, должен выглядеть следующим образом: / porumbei / editare / pk / My view:

def editareporumbei(request, pk):
    porumbel = get_object_or_404(Porumbei, pk=pk)

    if request.method == "POST":
    form = AdaugaPorumbel(request.POST, instance=porumbel)
    if form.is_valid():
        form.save()
        return redirect("dashboard")
    else:
    form = AdaugaPorumbel(instance=porumbel)
    context = {
        'form' : form,
    }
    template = loader.get_template("editare_porumbei.html")
    return HttpResponse(template.render(context, request))

#Link in the template. The template shows all Porumbei in the database
    <td>
        <a href="{% url 'editareporumbei' pk=porumbel.pk %}" class="mr-15" data-toggle="tooltip" data-original-title="Editează"> <i class="icon-pencil"></i> </a>
    </td>

# My url

    path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),

Реверс для 'editareporumbei' с аргументами ключевого слова '{' pk ':' '}' не найден.Попробован 1 шаблон (ов): ['porumbei / editare / (? P [0-9] +) / $']

Если я получу прямой доступ к porumbei/editare/5, отобразится форма для редактированияданные, но я хочу взять меня на страницу, когда я нажимаю кнопку.Кнопка находится на странице, где перечислены все Порумбеи.

1 Ответ

0 голосов
/ 21 мая 2019

Путь не верный.Попробуйте:

path('porumbei/editare/<int:pk>/', views.editareporumbei, name='editareporumbei'),

или:

re_path('porumbei/editare/(?P<pk>\d+)/', views.editareporumbei, name='editareporumbei'),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...