Delete rekod duplicate dalam Django

4 Dec 2022, 10:10 PM
Coding
0 Komen
Delete rekod duplicate dalam Django
            from django.db.models import Count, Max

unique_fields = ['field_1', 'field_2']

duplicates = (
    MyModel.objects.values(*unique_fields)
    .order_by()
    .annotate(max_id=Max('id'), count_id=Count('id'))
    .filter(count_id__gt=1)
)

for duplicate in duplicates:
    (
        MyModel.objects
        .filter(**{x: duplicate[x] for x in unique_fields})
        .exclude(id=duplicate['max_id'])
        .delete()
    )
        
code ni bukan aku punya

aku curi daripada victorono punya github

Penafian: Pihak kami tidak bertanggungjawab terhadap sebarang kehilangan atau kerosakan yang dialami kerana menggunakan maklumat dalam website ini dan segala yang tertera tidak berkenaan dengan sama ada yang hidup atau pun dah mati.

Tiada sebarang komen setakat ini.

Tak puas hati? Tulis komen anda disini

Tags

python
django

Snippet Berkaitan

Pycharm Django Console 13 Nov 2022, 12:12 PM
Django Admin EZ Mode 13 Dec 2022, 9:09 PM
Jupyter Notebook Kernel 22 Jan 2023, 2:02 PM
Title Case 14 Nov 2022, 10:10 PM
Python NRIC 14 Nov 2022, 10:10 PM