Chcę utworzyć link, który otwiera stronę admin django dodaj stronę modelu z wypełnionymi polami.admin django "dodaj stronę" początkowa data-godzina z parametrów GET
sprawdziłem, że jest możliwe, aby dodać parametry do słownika GET formularza dodawania, jak w:
<a href='/admin/myapp/mymodel/add?name=John'>add new mymodel with name John</a>
(właściwie uzyskać url {% url 'admin: myapp_mymodel_add' %} ale to jest po prostu jawne).
Teraz to działa dobrze z wartościami liczbowymi, wartościami tekstowymi i kluczami obcymi. Ale co z polami DateTime? Kiedy próbuję przekazać takie pole (próbowałem wielu formatów, jak na przykład "2014-05-09 10:10:00"), zawsze otrzymuję komunikat "błąd serwera" narzekający:
Obiekt "Unicode" nie ma atrybutu 'data'
w linii kodu:
django/formy/widgets.py w dekompresji, linia 902
def decompress(self, value):
if value:
value = to_current_timezone(value)
return [value.date(), value.time().replace(microsecond=0)] ...
return [None, None]
gdzie zmienna "wartość" ma wartość, którą przekazuję pod adresem URL ...
Pytanie 1. Założę się, że kod serwera nie powinien wywoływać wyjątku w zależności od wartości przekazywanych przez użytkownika ... czy nie jest to błąd w bibliotekach django?
Pytanie 2. Jak mogę rozwiązać mój problem, tj. Przekazać początkową datę i godzinę za pomocą parametrów GET na stronę administratora "dodaj" modelu?
Czy wypróbowałeś ten format: '2010-09-28 + 21: 00: 59'? – alecxe
Próbowałem: ten sam błąd ... –
OK, jeśli podzielisz datę i godzinę na 2 osobne parametry: '? Date_field_name_0 = 2010-09-28 i date_field_name_1 = 21: 00: 59', gdzie' date_field_name' to nazwa twoje pole datetime? – alecxe