Ich habe stundenlang meinen Kopf gegen die Wand geschlagen und es ist wahrscheinlich unglaublich einfach.Dynamisch erstellen Django URL Slug in der funktionsbasierten Ansicht
Ich brauche zwei URL-Slugs von einem Modell zu generieren. Einer wird eigentlich Slug genannt und ist ein SlugField, das für den Produkttitel steht, und der andere ist eine Kategorie, die ein ForeignKey ist.
Im Idealfall, was ich haben möchte ist
url(r'^products/(?P<category>[^\.]+)/(?P<slug>[^\.]+)/$', tool_detail, name='tool_detail'),
Aber der Kategorie Teil der URL Geben hält eine „ungültig wörtliche für int zu erzeugen() mit Basis 10:‚Kategorie‘- na ja, diese ist einer der Fehler, ich viele verschiedene Kombinationen ausprobiert.
Modell
...
slug = models.SlugField()
category = models.ForeignKey(Category)
...
anzeigen
def tool_detail(request, slug):
tool = get_object_or_404(Tool, slug=slug)
part = get_object_or_404(Part)
return render(request, 'tool_detail.html', {'tool': tool, 'part': part})
Vorlage
<a href="{% url 'tool_detail' t.category slug=t.slug %}" ... </a>
URL
url(r'^products/tools/(?P<slug>[^\.]+)/$', tool_detail, name='tool_detail'),
Ugh ... sehen, wie/tools/ist hartcodiert?
Vielen Dank für Ihre Hilfe.
Abfrage nach Name funktionierte für mich! Vielen Dank. Ich habe 'category = t.category' zu meinem URL-Pfad hinzugefügt. –