【发布时间】:2020-08-03 01:42:40
【问题描述】:
我在数据库中有这样的表:
MyTableWithValues
id | user(fk to Users) | value(fk to Values) | text | something1 | something2 ...
1 | userobject1 | valueobject1 |asdasdasdasd| 123 | 12321
2 | userobject2 | valueobject50 |QWQWQWQWQWQW| 515 | 5555455
3 | userobject1 | valueobject1 |asdasdasdasd| 12345 | 123213
我需要删除所有重复字段 user、value 和 text 的对象,但要从中保存一个。在本例中将删除第 3 条记录。
如何使用 Django ORM 做到这一点?
PS: 试试这个:
recs = (
MyTableWithValues.objects
.order_by()
.annotate(max_id=Max('id'), count_id=Count('user__id'))
#.filter(count_id__gt=1)
.annotate(count_values=Count('values'))
#.filter(count_icd__gt=1)
)
...
...
for r in recs:
print(r.id, r.count_id, , r.count_values)
它会打印如下内容:
1 1 1
2 1 1
3 1 1
...
尽管数据库中存在重复值这一事实。我不明白,为什么 Count 功能不起作用。
谁能帮帮我?
【问题讨论】:
标签: django python-3.x django-orm