Właściwy sposób korzystania z get_or_create?
Próbuję użyć get_or_create dla niektórych pól w moich formularzach, ale kiedy próbuję to zrobić, pojawia się błąd 500.
Jedna z linii wygląda tak:
customer.source = Source.objects.get_or_create(name="Website")
Błąd jaki otrzymuję dla powyższego kodu to:
Cannot assign "(<Source: Website>, False)": "Customer.source"
must be a "Source" instance.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
get_or_create
https://docs.djangoproject.com ... reate
:
Wyjaśnienie:
pola, które mają być ocenione pod względem podobieństwa, muszą być wymienione poza . Pozostałe pola muszą być uwzględnione w . W przypadku wystąpienia zdarzenia CREATE wszystkie pola zostaną wzięte pod uwagę.
Wygląda na to, że musisz zwrócić krotkę, a nie jedną zmienną, wykonaj następujące czynności:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
zwraca krotkę:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
W przypadku używania argumentów słów kluczowych innych niż „defaults” zwracana wartość jest instancją. Dlatego pokazuje pareny w zwracanej wartości.
możesz użyć
customer.source = Source.objects.get_or_create (name = "Website") [0]
, aby uzyskać poprawną wartość.Oto link do dokumentacji:
http://docs.djangoproject.com/ ... wargs
http://docs.djangoproject.com/ ... wargs