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

InformationsquelleAutor Matt Stokes | 2014-04-19
Schreibe einen Kommentar