在Django中过滤类和子类

时间:2009-06-25 21:21:04

标签: django inheritance filtering subclass

我有一个带有常见问题解答应用的项目。该应用程序具有FAQ(由网站作者编写)和UserFAQ(由用户编写 - 不仅仅是一个聪明的名字)的模型。我想返回符合特定条件的所有条目,常见问题或用户常见问题,但我也想排除任何不符合特定条件的用户常见问题。理想情况下,它看起来像:

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

其中“show_on_site”是只有UserFAQ对象具有的属性。这不起作用,因为过滤器在父类上扯掉,因为它没有属性。这样做的最佳方法是什么?我遇到了this snippet,但对于我想要做的事情来说似乎有些过分。

1 个答案:

答案 0 :(得分:1)

在你的位置,如果不需要有两个表,我很想有一个带有is_user_faq和show_on_site字段的FAQ模型/表。

有时,在对数据进行建模以便组织简单快速访问时,它会有所帮助。虽然模型继承具有一定的吸引力,但我发现它通常更容易避免使用它。