今天用到ForeignKey忘记怎么用了,网上查了一大堆写的乱七八糟,最后终于登录了django官网看了以下文档,真是写的简单明了,搞不懂网上一些教程非要将简单的东西复杂化。

根据官网的解释,我再来简化以下

第一步创建模型:

# 一级分类表
class TopCategory(BaseModel):
    title_zh = models.CharField(max_length=32, verbose_name='中文标题')

# 二级分类
class CategoryTag(BaseModel):
    title_zh = models.CharField(max_length=32, verbose_name='中文标题')
    top_category = models.ForeignKey(to=TopCategory, on_delete=models.DO_NOTHING, related_name='topcategory', verbose_name='关联外键')

反向查询 就是用被关联的模型(一级分类)查询关联的模型(二级分类)

#获取自身id为1的数据,例如一级分类下的:动物
row_data = models.TopCategory.objects.get(id=1)

#然后查看一级分类下有哪些二级分类,动物->乌龟,兔子,小鸟,麻雀...
res = row_data.topcategory.all()

正向查询 和上面反过来

#获取获取所有二级分类数据
row_data = models.CategoryTag.objects.all()

#然后查询这些二级分类都对应者那些一级分类例如[水,华,冰块,石头]->自然,[老虎,狮子]->动物
res = row_data.top_category 
#直接获取一级分类名称,如果需要获取ID学写top_category_id

已注销
102 声望1 粉丝

没有人一生都是春天,更没有人一生都是冬天