Django просмотр таблицы ссылок - PullRequest
0 голосов
/ 27 мая 2020

В моей модели есть три таблицы:

class Recipe(models.Model):
    title = models.CharField(max_length=200)
    excerpt = models.TextField(null=True)
    category = models.CharField(max_length=10, default='FoodGroup')
    cookTime = models.CharField(max_length=20, default='15Min')
    prepTime = models.CharField(max_length=20, default='5Min')
    process = models.TextField(null=True)
    slug = models.SlugField(max_length=100, unique=True)
    updated = models.DateTimeField(auto_now=True)
    published = models.DateTimeField(default=timezone.now)

def get_absolute_url(self):
    return reverse('recipe:single', args=[self.slug])

class Meta:
    ordering = ['-published']

def __str__(self):
    return self.title


class Ingredient(models.Model):
    IngName = models.CharField(max_length=30)
    IngType = models.CharField(max_length=20, null=True)

def __str__(self):
    return self.IngName


class RecipeIngredients(models.Model):
    ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
    recipe = models.ForeignKey(Core, on_delete=models.CASCADE)

И вид выглядит так:

class RecipeView(ListView):
    model = RecipeIngredients
    template_name = 'core/recipes.html'
    context_object_name = 'recipe'

Я пытаюсь просмотреть эти данные, используя a for l oop:

    {% for recipe in recipe %}
    {{ recipe.title }}
    {% endfor%}

, но с помощью этого метода ничего не получается. Я пробовал просматривать документы, но не уверен, что делаю это наилучшим образом? Я просмотрел раздел документации "многие ко многим", но подумал, что таблица ссылок может быть более подходящей для моего сценария.

отредактируйте для всех, у кого есть похожие проблемы:

Использование функции модели ManyToMany Django оказалось более подходящим: https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_many/

  • Ответ был правильным, говоря, что имя_объекта было выбрано неправильно.

1 Ответ

1 голос
/ 27 мая 2020

Имя вашей итерации должно отличаться от context_object_name.

Попробуйте другое имя, например:

{% for diff_name in recipe %}
    {{ diff_name.title }}
{% endfor%}
...