• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
Django多对多模型

Django多对多模型 - 子小龙 - 子小龙的博客

models.py
from django.db import models


class 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
##############多对多##############

#正向操作
# obj = models.Entry.objects.get(id=1)
# print(obj,obj.headline,obj.authors)
# print(obj.authors.all())
# author1 = models.Author.objects.filter(id__gt=2)
# author1 = models.Author.objects.filter(id=2)
# print(author1)
# obj.authors.add(*author1)

#反向操作 _set关键字
# author1 = models.Author.objects.get(id=2)
# author1.entry_set.add(*models.Entry.objects.filter(id=1))
# print(author1,author1.name,entry1)



#_set 关联表相关操作
# author1 = models.Author.objects.get(id=1)
# author1.entry_set.add(*models.Entry.objects.filter(id=1))
#删除关联表信息
# author1.entry_set.remove(*models.Entry.objects.filter(id=1))
#修改关联表 清空所有再增加数据 默认clear=False 如果数据存在 不做修改
# author1.entry_set.set(models.Entry.objects.filter(id__gt=1))
# author1.entry_set.set(models.Entry.objects.filter(id=2))
#默认clear=True 则清楚所有 再添加
# author1.entry_set.set(models.Entry.objects.filter(id=2),clear=True)
#delete() 慎用 删除关联表中与author1 id=1相关的 并且 删除另外一个字段关联的表entry的数据
# author1.entry_set.all().delete()
#create , get_or_create ,update_or_create
# author1.entry_set.get_or_create(body_text='h33333')

总结:

Django多对多模型 - 子小龙 - 子小龙的博客
 
其他:
Django多对多模型 - 子小龙 - 子小龙的博客
 
Django多对多模型 - 子小龙 - 子小龙的博客
 
Django多对多模型 - 子小龙 - 子小龙的博客
 
 
 

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/8691610.html

posted on 2018-04-02 11:22  孙龙-程序员  阅读(122)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3