作者:白杨树问天 | 来源:互联网 | 2024-10-20 10:32
DjangoForeignKey关联查询-今天用到ForeignKey忘记怎么用了,网上查了一大堆写的乱七八糟,最后终于登录了django官网看了以下文档,真是写的简单明了,搞不懂
今天用到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