Django pass kwargs durch URL
Den Zweck dieser code-Abschnitt ist es zu zeigen, alle Anforderungen für den Beitritt zu einer Gruppe in eine Vorlage ähnlich der Abbildung unten:
Request 1 | Add | Delete
Request 2 | Add | Delete
Request 3 | Add | Delete
....
Was ich gedacht haben, zu tun ist, um den 'hinzufügen' button 'löschen' href ' s, um eine Funktion in den Blick. Allerdings Frage ich mich, was der richtige Weg, um pass-a **kwarg von einer Vorlage zu einer Ansicht. Sonst, wenn es irgendeine bessere Möglichkeit, dies zu erreichen?
Vorlage
{% for asking in requested %}
<a href={% url 'group_judge_request' group_profile.slug decision=0 %}>Cut {{ asking.user.username }}</a>
<a href={% url 'group_judge_request' group_profile.slug decision=1 %}>Keep {{ asking.user.username }}</a>
{% endfor %}
url
url(r'^judge_request/(?P<gslug>[\w-]+)$',
group_judge_request,
kwargs={'decision':'decision'},
name='group_judge_request'),
Ansicht group_judge_restart
def group_judge_request(request, gslug, decision):
Ansicht group_requested_invites
def group_requested_invites(request, gslug):
....
requested = GroupRequestToJoin.objects.filter(group=group_profile.group, checked=False)
return render(request, "groups/group_requested_invites.html", {
'requested' : requested,
})
Fehler:
Don't mix *args and **kwargs in call to reverse()!
- Haben Sie versucht, das entfernen der keyword syntax in der url-templatetag? Würden Sie so etwas haben {% url 'group_judge_request' group_profile.slug-0 %}. Lesen die Django-docs, Sie können nicht mischen positions-und Schlüsselwort-syntax. docs.djangoproject.com/en/dev/ref/templates/builtins/#url
- Fehler: Reverse für 'group_judge_request' Argumente '(", 0)' - und Schlüsselwort-Argumente '{}' nicht gefunden. 1 Muster(s) versucht: ['group/judge_request/(?P<gslug>[\\w-]+)$']
- Wie zu versuchen mithilfe der Schlüsselwort-syntax? {% url 'group_judge_request' gslug=group_profile.slug Entscheidung=0 %}.
- Reverse für 'group_judge_request' Argumente '() ' - und Schlüsselwort-Argumente '{u'decision': 0, u'gslug': "}' nicht gefunden. 1 Muster(s) versucht: ['group/judge_request/(?P<gslug>[\\w-]+)$']
- Ich denke, es ist, weil die gslug übergeben eine leere Zeichenfolge ist? Es wird nicht mit dem regex in Ihrem urlconf.
- In diesem thread haben die Antwort hier für Sie zwei Argumente, die in pk stackoverflow.com/a/42431096/6786040
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es ist ein Weg, um pass *kwargs wie dies aus der Vorlage mit der integrierten url-Vorlage tag.
Gibt es zwei Möglichkeiten, wie Sie dies tun können, ist zu erstellen Sie zwei separate urls, und übergeben Sie die Entscheidung als kwarg zu der Ansicht:
urls.py
Vorlage
Oder Sie könnte passieren die ganze Zahl als parameter:
urls.py
Vorlage
Ich denke, Sie wollen verwenden Sie eine url-Abfrage. Damit Ihre url wird wie folgt lauten:
Können Sie dann gehen Sie auf um eine Liste der Abfragen verwenden: