Фильтрация класса и подкласса в Django - PullRequest
0 голосов
/ 26 июня 2009

У меня есть проект с приложением FAQ. В приложении есть модели для FAQ (написано авторами сайта) и UserFAQ (написано пользователями - не просто умное имя). Я хочу вернуть все записи, FAQ или UserFAQ, которые соответствуют определенным условиям, но я также хочу исключить любые UserFAQ, которые не соответствуют определенным критериям. В идеале это будет выглядеть примерно так:

faqs = FAQ.objects.filter(question__icontains=search).exclude(show_on_site=False)

Где "show_on_site" - это свойство, которое есть только у объектов UserFAQ. Это не работает, потому что фильтр выходит из родительского класса, поскольку он не обладает свойством. Какой лучший способ сделать это? Я наткнулся на этот фрагмент , но мне кажется, что то, что я хочу сделать, излишне.

1 Ответ

1 голос
/ 26 июня 2009

На вашей позиции, если нет необходимости иметь две таблицы, я бы хотел иметь одну модель / таблицу FAQ с полями is_user_faq и show_on_site.

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

...