django: настройка нескольких форм / моделей комментариев - PullRequest
1 голос
/ 09 ноября 2011

В этом сценарии у меня есть 2 или более моделей:

class Store(models.Model):
    name = models.CharField(max_length = 100)
    homepage = models.URLField(verify_exists = False)
    ....

class Product(models.Model):
    display = models.BooleanField(default = True)
    created = models.DateTimeField(auto_now_add = True)
    changed = models.DateTimeField(auto_now_add = True, auto_now = True)
    ....

Каждому из них нужна своя модель / форма комментария. Например:

  • комментарий к продукту Я хотел бы получить дополнительную информацию, такую ​​как рейтинг продукта, плюсы, минусы и т. Д.
  • Но для магазина я хотел бы иметь некоторые поля, такие как оценка поддержки клиентов, оценка связи / ответа, логическое значение, если цена доставки приемлема, и т. Д.

Обе эти модели будут делиться на подклассы модели комментариев Комментарии, так что она совместима с существующими тегами шаблонов администратора и комментариев.

Однако, похоже, что встроенные настройки комментариев от Django довольно жесткие, позволяющие настраивать только одну модель / форму с помощью get_model () и get_form () методы.

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

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

1 Ответ

1 голос
/ 07 апреля 2012

В итоге я реализовал дополнительную модель, которая находится над текущим модулем комментариев в Django.

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

  • Прежде всего, позволяет связывать различные модели комментариев с конкретными целевыми моделями
  • Свяжите свои модели комментариев напрямую с целевой моделью в ORM без каких-либо взломов, как в модуле комментариев contrib
  • Позволяет настраиваемую проверку в формах и не вызывает 500, если поля недействительны
  • Отображать предварительный просмотр комментариев на текущей странице, без необходимости перенаправлять пользователя на пустую страницу
  • Легче реализовать предварительнособытия комментирования без использования сигналов
  • Подключается к системе комментариев contrib, что делает ее совместимой с существующей базой данных / плагинами / тегами шаблонов / фильтрами шаблонов
  • Поддерживает поддержку комментариев.*
  • Легко для темы.Имена моделей включены в имена классов форм, поэтому вы можете указывать стили для каждой формы.
  • Простые в использовании шаблоны (см. Ниже)

Этот модуль доступен по github , если вы заинтересованы в помощи в разработке и / или тестировании.

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

...