这就是我想要做的。假设我有一个社区页面体育,我想将它的相关页面显示到“体育”页面。我想向我的“体育”页面展示“足球”,“棒球”,“篮球”。
所以我考虑过使用foreignkey关系。但是,我试过的“足球”页面显示“体育”。在管理员,对于足球页面,对于该字段,related_cat我可以选择其他类别。我选择了“体育”,因为我希望“足球”成为“体育”的一部分。但它向后显示。足球页面显示体育。
class Category(models.Model):
name = models.CharField(max_length=128, unique=True)(Sponsored, null=True, blank=True)
related_cat = models.ForeignKey("self", null=True, blank=True)
{% if category.related_cat %}
{{category.related_cat}}
{% endif %}
答案 0 :(得分:0)
另外,Django有多个标记包(参见https://www.djangopackages.com/grids/g/tagging/)。
但是,对于你的问题:
您可能希望使用多对多而不是外键,但假设您需要严格的层次结构,给定对象Parent parentAlias = null;
Child childAlias = null;
GrandChild grandChildAlias = null;
ICriterion dateCriterion = Restrictions.Where<GrandChild>(
g => g.Date2.Date >= fromDate && g.Date2.Date <= toDate
);
var query = QueryOver.Of(() => parentAlias)
.Inner.JoinAlias(() => parentAlias.Children, () => childAlias)
.Inner.JoinAlias(() => childAlias.GrandChildren, () => grandChildAlias, dateCriterion)
.Where(p => p.Obj1.Id == param1 && p.Obj2.Id == param2 && p.Date1 == paramDate);
var result = query.GetExecutableQueryOver(session).SingleOrDefault();
的{{1}}为Football
,另一个对象related_category
也有Sport
Baseball
,您可以通过{{1}获取related_category
Sport
的所有内容的列表}}