models.py 前)
tb2 = table2.objects.all().values("id","content","plus1","plus2","registerdate")
tb1 = table1.objects.all().annotate(plus1=Value('plus1', output_field=CharField()),plus2=Value('plus2', output_field=CharField())).values("id","content","plus1","plus2","registerdate")
我试过
plus1 = plus1 , plus2=plus2
merge = tb2.union(tb1)
tb2值是对的
但是tb 1字段很奇怪。
有时plus1 = plus2 , plus2=plus1
有时merge.count()
merge.order_by("-registerdate")
我想要
FindCaller()
我可以获得一致的对齐字段
如果不是
我可以在没有工会的情况下获得数量和订单吗?
答案 0 :(得分:1)
如果更改表格结构,则根本不会出现此问题。 请考虑以下事项:
table1(models.Model):
id = primarykey
content = textfield
registerdate = datetimefield
table2(table1):
plus1 = charfield
plus2 = charfield
如果你使用它,你可以使用获得table1和table2的计数
table1.objects.count()
您也可以使用table2.objects.count()
您还可以使用OneToOne
字段。这是一个例子:
table1(models.Model):
id = primarykey
content = textfield
registerdate = datetimefield
table2(models.Model):
id = primarykey
table1 = models.OneToOne(table1)
plus1 = charfield
plus2 = charfield
现在你可以在table2上使用F
对象进行注释,就像这样
from django.db.models import F
table2.objects.all().annotate(content=F('table1__content'), registerdate =F('table1__ registerdate'))