Как мне разобрать более 2 аргументов в моей функции URL Path в Django - PullRequest
0 голосов
/ 14 апреля 2020

Пожалуйста, помогите мне.

У меня есть это в моем URL Шаблон моего блога

app_name = 'webpages'

 path('articles/<int:pk>/<slug:slug>', views.blog_detail, name='articles_detail'),

Как мне кодировать это в шаблоне? Я попробовал это

<a href="{% url 'webpages:articles_detail' post.pk post.slug %}">{{post.title}}</a>

Я смог сделать это только для одного аргумента. но столкнулся с проблемой из-за двух аргументов.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы должны использовать kwargs-подобный синтаксис:

<a href="{% url 'webpages:articles_detail' pk=post.pk slug=post.slug %}">{{post.title}}</a>

Полный пример:

... / some_app / views.py


from django.template.response import TemplateResponse


def some_view(request):
    return TemplateResponse(request, 'some_app/some_template.html')


def another_view(request, first_arg, second_arg):
    return TemplateResponse(
        request, 'some_app/another_template.html',
        context={'first_arg': first_arg, 'second_arg': second_arg}
    )

... /some_app/templates/some_app/some_template.html

<html>
    <body>
        <h1><a href={% url 'another_view' first_arg=1 second_arg=2 %}>Click here to go to another_view </a></h1>
    </body>
</html>

... / some_app / templates / some_app / another_template. html


<html>
    <body>
        <h1>{{ first_arg }} | {{ second_arg }}</h1>
    </body>
</html>

... / some_app /urls.py

# ...
urlpatterns = [
    path('some_view/', some_view),
    path('another_view/<int:first_arg>/<int:second_arg>/', another_view, name='another_view')
]
# ...

0 голосов
/ 14 апреля 2020

Какую ошибку вы получаете? Этот код должен работать нормально. Я делаю что-то похожее в своем коде, и оно работает нормально

<a href="{% url matchUrl matchFilter object.id %}">{{object.name}}</a>

Здесь matchUrl - это контекстная переменная из представления, а matchUrl / matchFilter / object.id указывает на другое представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...