Группировка модельных объектов в Джанго - PullRequest
0 голосов
/ 12 августа 2011

У меня есть приложение с 2 моделями: Product и Photo, каждая из которых соответствует таблице MySQL (управляемой MyISAM).

Product - это поле ForeignKey, равное Photo. Несколько Photo объектов могут совместно использовать один Product объект.

Теперь вопрос: мне нужно, чтобы объекты Photo были дополнительно подгруппированы в наборы, представляющие один и тот же объект реального мира (экземпляр продукта), сфотографированный с разных сторон. Я хочу различать эти разные объекты реального мира, но все же они все связаны с их Product объектом.

Каков наилучший способ группировки фотографий с точки зрения эффективности как запросов к базе данных, так и ручного ввода данных?


Благодаря @shawnwall, больше идей:

  • Возможно Product следует подключать не к отдельным Photo объектам, а к наборам фотографий.
  • Должен быть набор для каждого объекта реального слова, даже если сейчас есть только 1 его фотография.
  • Набор должен быть представлен в виде поля идентификатора в таблице Photo, общего для некоторых объектов Photo и объекта Product. (Что это за поле?)

1 Ответ

1 голос
/ 12 августа 2011

Похоже, ваш подход пока приличный. Я рассматривал множество областей от продуктов до фотографий, но это не похоже на то, что нужно. Вы можете добавить столбец «аспект», который относится к списку «вариантов» в таблице фотографий. Также помните, что django позволит вам запрашивать оба способа:

Photo.objects.filter(product__id=1)

или

Product.objects.filter(photo__id=2)

Вы также можете получить к ним доступ через экземпляры:

photo.product   

или

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