Поля даты Django никогда не оцениваются равными при сравнении - PullRequest
0 голосов
/ 30 мая 2019

У меня есть два экземпляра модельного объекта, и я хочу сделать что-то, если они различаются в одном поле, например, DateField , но когда я оцениваю, отличаются ли они, они всегда , даже если они имеют одинаковую дату.

Это код, который выполняет сравнение:

for field in fields:
    if 'name' in field.__dict__:
        field_name = field.__dict__['name']

        if field_name in instance.__dict__:
            new_value = instance.__dict__[field_name]
            old_value = old_instance.__dict__[field_name]

            if new_value != old_value: # This line always avaluates true when fields are DateField
                print("{} - {}".format(old_value, new_value))
                if first:
                    first = None
                else:
                    detail = detail + '\n'

                    detail = detail + field_name + ' = ' + str(old_value) + ' --> ' + str(new_value)

Я печатаю new_value и old_value для отладки, и я считаю, что поля даты всегда оцениваются по-разному, даже если они имеют одинаковую дату:

enter image description here

Я не знаю, существует ли конкретный способ сравнения значений даты.

...