我在同一张表中有两行,我想为这些行获取具有不同值的列名。
我知道我可以通过一个简单的for
循环(如下面的示例)来实现此目的,但是django也许已经有一种方法可以完成此任务。
class MyModel(models.Model):
name = models.CharField(max_length=30)
email = models.EmailField()
#---
a = MyModel(name='A', email='a@z.com')
a.save()
b = MyModel(name='B', email='b@z.com')
b.save()
#---
recA = MyModel.object.get(pk=1)
recB = MyModel.object.get(pk=2)
#---
diff = []
colNames = [
'email',
'name',
]
for a in colNames:
if getattr(recA, a) == getattr(recB, a):
pass
else:
diff.append(a)
答案 0 :(得分:0)
如果您希望具有至少一列的行具有不同的值,则可以这样查询:
result = MyModel.objects.filter(pk__in=[1,2]).distinct().values('email','name')
distinct()将消除查询结果中的重复行。