определение django entry_set - PullRequest
       7

определение django entry_set

1 голос
/ 15 апреля 2011

Я не понимаю следующий код на странице 87 Практических проектов Django:

из django.views.generic.list_detail import object_list

def category_detail(request, slug):
    category = get_object_or_404(Category, slug=slug)
    return object_list(request, queryset=category.entry_set.all(),
                       extra_context={ 'category': category }))

Где это entry_setродом из ?Где это было определено?Спасибо.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Это было , созданное Entry моделью .

Если модель имеет ForeignKey, экземпляры модели с внешним ключом будут иметь доступ к Manager, который возвращает все экземпляры первой модели.По умолчанию это Manager имеет имя FOO_set, где FOO - имя модели источника в нижнем регистре.

0 голосов
/ 15 апреля 2011

У меня нет своей копии передо мной, но свойство _set обычно является результатом ForeignKey.Модели должны выглядеть примерно так:

class Entry(models.Model):
  text = models.TextField()
  ...

class Category(models.Model):
  entry = models.ForeignKey(entry)
  ...

, поэтому, если вы выполните запрос к категории, у каждой категории будет элемент entry_set, который будет содержать все данные, связанные с моделью входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...