Guten Morgen zusammen,
Ich bin seit geraumer Zeit PHP-Programmierer, aber ich hatte das Bedürfnis, mich mehr in Richtung Python zu bewegen, und was gibt es Besseres, als mit Django herumzuspielen.
Während in den Prozess, ich bin an einem Haltepunkt kommen, wo ich weiß, es ist eine einfache Lösung, aber ich bin nur fehlt es - Wie zeige ich viele Beziehungen in einer Django-Vorlage?
Mein Django-Modell: (die meisten Felder sind entfernt worden)
class Category(models.Model):
name = models.CharField(max_length=125)
slug = models.SlugField()
categories = models.ManyToManyField(Category, blank=True, null=True)
class Recipe(models.Model):
title = models.CharField('Title', max_length=250)
slug = models.SlugField()
class Photo(models.Model):
recipe = models.ForeignKey(Recipe)
image = models.ImageField(upload_to="images/recipes", blank=True)
Es gibt also die grundlegenden Modelle, die ich in meiner Anwendung namens "Rezepte" verwende.
In diesem Zusammenhang suche ich Antworten auf zwei Fragen:
- Wie kann ich die Kategorien für ein Rezept auf der Detailseite anzeigen?
- Wie kann ich das Bild des Rezepts auf der Detailseite anzeigen lassen?
Wenn ich die Python-Shell aufrufe und Folgendes eingebe, erhalte ich tatsächlich ein Ergebnis:
>>> photos = Photo.objects.filter(recipe=1)
>>> photos
[<Photo: Awesome Pasta>]
>>> for photo in photos:
... print "Photo: %s" % photo.logo
...
Photo: images/recipes/2550298482_46729d51af__.jpg
Aber wenn ich etwas wie das Folgende in meiner Vorlage versuche, erhalte ich die Fehlermeldung "Ungültiges Block-Tag: 'photo.image'."
{% for photo in photos %}
{% photo.image %}
{% endfor %}
Obwohl, selbst wenn das funktionierte, die ID noch hart in die Ansicht codiert ist, wie würden Sie gehen über mit dieser dynamischen für jedes Rezept?
Details Seite View.py Schnipsel:
def details(request, slug='0'):
p = get_object_or_404(Recipe, slug=slug)
photos = Photo.objects.filter(recipe=1)
return render_to_response('recipes/recipes_detail.html', {'p': p, 'photos': photos})
Vielen Dank im Voraus für die Hilfe und das Verständnis für eine wahrscheinlich sehr einfache Frage an Sie alle!
UPDATE: Beim Entfernen der zusätzlichen Felder in den Modellen habe ich das Feld "Kategorien" für das Modell "Rezepte" vergessen.