python之django数据模型ForeignKey

网友投稿 314 2022-09-08


python之django数据模型ForeignKey

2、连表结构

一对多:models.ForeignKey(其他表)多对多:models.ManyToManyField(其他表)一对一:models.OneToOneField(其他表)

model.py

from django.db import modelsclass Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField()class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField()class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.CharField(max_length=255) body_text = models.TextField() pub_date = models.DateField() mod_date = models.DateField() authors = models.ManyToManyField(Author) n_comments = models.IntegerField() n_pingbacks = models.IntegerField() rating = models.IntegerField()

表结构:

views.py

from django.shortcuts import renderfrom django.import HttpResponsefrom app01 import modelsdef index(req):#正向查找""" ret = models.Author.objects.all() print(type(ret),ret,ret.query) #ret是QuerySet,一个特殊的对象 for item in ret: #item 每一行数据 是一个对象 print(item,item.name) ret1 = models.Author.objects.all().values("id") print(type(ret1), ret1, ret1.query) # ret是QuerySet,一个特殊的对象 for item in ret1: # item 每一行数据 是一个字典 {'id': 1} print(item,item['id']) ret1 = models.Author.objects.all().values_list("id","name") print(type(ret1), ret1, ret1.query) # ret是QuerySet,一个特殊的对象 for item in ret1: # item 每一行数据 是一个元祖(1, '李四') print(item) """ # ret = models.Entry.objects.all() # for item in ret: # #item 每一行数据 是一个对象# #item.blog 是外键 是一个对象 包含关联表所有信息# #item.blog_id 关联的外键字段# #item.blog.name item.外键字段.name # print(item,item.headline,item.blog,item.blog_id,item.blog.name) #双下划线的魅力#注:fitter() 里面也要用__双下划线# ret = models.Entry.objects.all().values("headline","blog__name") # for item in ret: # # item 每一行数据 是一个字典# # blog__name 外键字段__name 双下划线获取关联表字段 {'headline': 'hello1', 'blog__name': 'blog1'} # print(type(item),item) #反向查找ret = models.Blog.objects.filter(name="blog1").first()print(ret,ret.name,ret.id)#表名_set.all()blog_info = ret.entry_set.all()print(blog_info)for item in blog_info:print(item.headline,item.body_text,item.blog_id)return HttpResponse("hello")

总结:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python多线程low版本
下一篇:Spring的事件机制知识点详解及实例分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~