Mam model, który zawiera DurationField
. Jeśli w tym polu zostaną zapisane wartości dodatnie, otrzymam poprawny wynik, jeśli wartości ujemne zostaną zapisane, zwróci "Brak", jeśli próbuję uzyskać dostęp do atrybutu modelu.Django Czas trwania Pole z wartością ujemną
Model wygląda następująco:
class Calendar(models.Model):
nominal_actual_comparison = models.DurationField(null=True,blank = True)
Jeśli próbuję teraz do niego dostęp w widoku jak na poniższej ilustracji, a wartość jest ujemna mam uzyskania NoneType
obiektu:
calendar_object = Calendar.objects.get(id = 1)
calendar_object.nominal_actual_comparison
Zajrzałem do bazy danych i zobaczyłem, że DurationField
jest zapisany jako BigInt
. Wartości w bazie danych są zdecydowanie poprawne, dlatego zastanawiam się, czy istnieje błąd w implementacji DurationField
, czy też robię coś nie tak? Co mogę zamiast tego zrobić? Czy jest możliwe zastąpienie klasy DurationField
, aby dostosować sposób przekształcania BigInt
w obiekt datetime.timedelta
? Widziałem metodę o nazwie to_python
, która najwyraźniej nazywa się metodą parse_duration
, ale metoda to_python
nigdy nie jest wywoływana! Mam nadzieję, że możesz mi pomóc, z góry dzięki!