Доброе утро всем,
Я довольно давно программист на PHP, но я чувствовал необходимость больше двигаться в направлении Python и что лучше, чем играть с Django.
Находясь в процессе, я подошел к точке остановки, где я знаю, что есть простое решение, но я просто упускаю его - как отобразить множество связей в шаблоне Django?
Моя модель Django: (большинство полей были удалены)
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)
Итак, есть базовые модели, которые я использую в своем приложении, называемые «рецепты».
С учетом сказанного есть два вопроса, на которые я ищу ответы:
- Как мне показать категории для рецепта на странице с подробностями?
- Как бы я показал изображение рецепта на странице с подробностями?
Если я зайду в оболочку Python и введу следующее, я получу результат:
>>> 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
Но когда я пытаюсь что-то вроде следующего в моем шаблоне, я получаю сообщение об ошибке "Недопустимый тег блока: 'photo.image'."
{% for photo in photos %}
{% photo.image %}
{% endfor %}
Хотя, даже если это сработало, идентификатор все еще жестко закодирован в виде, как бы вы использовали эту динамику для каждого рецепта?
Подробная информация о странице. Фрагмент кода:
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})
Заранее спасибо за помощь и понимание того, что, вероятно, очень простой вопрос для всех вас!
ОБНОВЛЕНИЕ: При удалении дополнительных полей в моделях я забыл поле категорий для модели рецептов.