Djangoorm的多表建立与queryset对象的合并

Djangoorm的多表建立与queryset对象的合并

2023年7月20日发(作者:)

Djangoorm的多表建⽴与queryset对象的合并使⽤这个⽅法的前提是:我们⽤Django的orm和REST来实现的 数据库提前建好了,⽽且表中字段相同,但是表名是不⼀样.需要动态在model中建表。我们使⽤Book_来模拟实现的from import modelsimport sysclass Book_1(): name = eld(max_length=32) class Meta: db_table = 'book_1'import sys#动态⽣成类⽤typefor i in range(2,4): #meta是指定数据库的名字 class Meta: db_table = 'book_' + str(i) dd = { 'name': eld(max_length=32),#这是⽣成类⾥⾯的参数 '__module__': Book_1.__module__,#这个⽬前不在确定 'Meta': Meta,#这是meta参数 } c_name = 'Book_' + str(i)#这是⽣成类的名字 print('sys_modules',s[__name__]) setattr(s[__name__], c_name, type(c_name, (,), dd))#这是设置类的名字在试图中的函数:⽬前⾥⾯没有序列化数据,直接返回的,如果是queryset对象是同⼀个model⽤|来连接。如果不是就⽤下⾯的⽅法。from uts import render,HttpResponsefrom app01 import models# class Bookserializer()def test1(request): queryset_l = [] for i in range(1, 4): queryset_(getattr(models, 'Book_' + str(i)).())#这个是⽤的是extend⽅法,如果我们要⽤REST序列化的话,就⽤这个⽅法 queryset_(getattr(models, 'Book_' + str(i)).())#这个是⽅法与下⾯的chain⽅法配合使⽤, data = (queryset_l) # data = (chain(*queryset_l))#这个⽅法获取的数据不是queryset对象了 print('data',data) data=list(data) for x in data: print() return HttpResponse(x)

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689824558a288909.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信