Wpis z mikrobloga

Mam mały problem z #python i #django . (Znowu (,) )
Konkretnie chodzi o to że próbuję podłączyć system płatności do frameworka django-oscar. Jeszcze konkretniej chodzi o to, że oscar przechowuje dane o aktualnym zamówieniu w słowniku, zawierającym różne typy danych, np. Decimale porozrzucane po różnych klasach. Nie da się tego zserializować.
Żeby dokonać płatności, muszę zrobić przekierowanie na stronę, np. transferuj.pl, a potem wrócić. Tylko problem z tym że jak wracam, to nie mam już żadnych danych o zamówieniu.
Tak jak wspomniałem, zserializować żeby trzymać w request.session['order'] się nie da, model przed płatnością nie jest jeszcze wpisany do bazy, i nie mam zielonego pojęcia jak się do tego słownika dostać. Poratuje ktoś pomysłem?
  • 19
@LOLWTF: Właśnie też nad tym myślałem, tylko problem z tym że zamówienie ma dość złożoną strukturę - każdy jego element, to kolejna klasa typu shipping_adres czy basket Na każdą z tych 7 klas przypada kolejne tyle składowych. Szczerze to nie wiem jak utworzyć taki model - jest jakieś narzędzie tworzące model / obiekt ze słownika?
@blackyabbol: to możesz je odwzorować w bazie modelami i polecieć FK
Możesz zrobić model zamówienia z pierdyliardem pól
możesz zrobić model zamówienia z polami, w których będziesz trzymać słowniki tych wszystkich klas. Zainteresuj się polem JSONB w postgresie 9.4. Pola takie mogą trzymać jsona, można filtrować po wartościach z tych jsonów, cuda na kiju, panie.
@LOLWTF: Będę musiał chyba połączyć pierwszą opcję z drugą :/ BTW - dziwi mnie trochę że nie da się tego zserializować - wyrzuca błąd Decimal(...) is not serializable with JSON, ale jak szukam rozwiązania w googlach to wszędzie jest napisane że wystarczy nowa wersja pythona czy simplejson, a posty są sprzed kilku lat.
@fakeReal: Właśnie w tym problem - do momentu odebrania potwierdzenia płatności, ten framework (oscar) trzyma znaczną większość danych o zamówieniu (adres niezarejestrowanego użytkownika chociażby) w słowniku. Po powrocie ze strony banku nie mam do nich dostępu.
@fakeReal: @LOLWTF: hm, na tym frameworku ma stać cały sklep, więc odrzucenie go nie wchodzi raczej w rachubę, a wymiana tylko modułu odpowiedzialnego za proces zamówienia też trochę by zajęła. Ogólnie cała reszta jest bardzo przyjemna, i bez zarzutu - tylko ten brak pomysłu na dostanie się do danych przerzucanych w requestach wracając z przekierowania do banku trochę wadzi. Wina pewnie tego że pisząc go na zachodzie pewnie skupiali się