У меня есть два экземпляра модельного объекта, и я хочу сделать что-то, если они различаются в одном поле, например, 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
для отладки, и я считаю, что поля даты всегда оцениваются по-разному, даже если они имеют одинаковую дату:
Я не знаю, существует ли конкретный способ сравнения значений даты.