【发布时间】:2019-11-14 12:30:05
【问题描述】:
这是我想要获取 first_name 和 last_name 相同的记录的模型
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=120)
last_name = models.CharField(max_length=120)
我试过这个检查只有 first_name 或 last_name 相同,但我必须同时检查 first_name 和 last_name是一样的。
这会检查姓氏是否相同。
duplicates = Customer.objects.values('last_name')
.annotate(name_count=Count('last_name'))
.filter(name_count__gt=1)
queryset = Customer.objects.filter(last_name__in=[item['last_name'] for item in duplicates])
.values()
这会检查 first_names 是否相同。
duplicates = Customer.objects.values('first_name')
.annotate(name_count=Count('first_name'))
.filter(name_count__gt=1)
queryset = Customer.objects.filter(first_name__in=[item['first_name'] for item in duplicates])
.values()
我们将不胜感激!
谢谢!
【问题讨论】:
-
为什么不用
unique_together标记first_name和last_name? -
抱歉,先生回复晚了。我正在使用 Django-2.0。
标签: django django-models django-forms django-templates django-views