Wpis z mikrobloga

#naukaprogramowania #python #django

Cześć Mircy.

mam problem z formularzem w Django. Piszę sobie appkę (typer meczów) i mam 2 modele - Match(pola: drużyny i wynik) i Bet(pola: mecz jako foreign key, typer też foreign key i typ).

Chciałbym utworzyć formularz który pokazywałby wszystkie mecze ( w formie ul) i i przy każdym meczu byłoby pole gdzie można wybrać swój typ do niego(1,2,X,1X,X2). Przy submitnięciu formularza tworzyłyby się odpowiednie instancje modelu Bet.

Jak się za to zabrać? Udało mi się zrobić formularz dodawania Betów, ale tylko taki żeby wybrać mecz z listy. Największym natomiast moim problemem jest osiągnięcie tego wyświetlenia listy meczy i pola wyboru swojego typu do niego.

Proszę o wskazówki ;)
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bionizy
Dzięki za odpowiedź ;)

Jak robiłem formularz który opisałem na końcu posta to użyłem ModelForm i nie definiowałem sam żadnych pól tylko dałem fields = ['match', 'bet']. Chyba, że da się też w tym przypadku jakoś dać ten parametr widget?
  • Odpowiedz
Dzięki za odpowiedzi :)

@Bionizy - wydaje mi się, że w ogóle to nie jest związane z widgetami

@gofr - nie o to mi niestety chodzi. Coś takiego żeby wybrać sobie mecz z listy i jemu dodać bet, udało mi się napisać. Bardziej chodzi mi o to żeby na stronie, w jakiś sposób, pokazały się wszystkie mecze (instancje modelu Match) i przy każdym był widget wyboru
barteb - Dzięki za odpowiedzi :)

@Bionizy - wydaje mi się, że w ogóle to nie jest ...

źródło: comment_Wc5G1qvslkEC8aZIwnsiKdbsX17wjtUV.jpg

Pobierz
  • Odpowiedz
@barteb: Ja bym olał w takiej sytuacji ModelForm i napisał osobno template iterujący po meczach i tworzący formularz, a osobno widok reagujący na get/post
  • Odpowiedz
@barteb: formset to dobra droga. Co do Bet - ma się za każdym razem tworzyć osobna instancja dla Match, czy będziesz miał kilka rekordów dla (('X', 'X'), ('1', '1'), ('2', '2'), ('1X', '1X'), ('X2', 'X2'))? Jeśli będziesz miał to wystarczy Ci ModelForm i z wykorzystaniem modelformset_factory zrobisz to w 3 sekundy. W przeciwnym wypadku - zrealizuj sobie tworzenie nowego Bet dla Match po stronie widoku.
btw przekombinowałeś z modelami. Czy
  • Odpowiedz
@gofr > Co do Bet - ma się za każdym razem tworzyć osobna instancja dla Match, czy będziesz miał kilka rekordów dla (('X', 'X'), ('1', '1'), ('2', '2'), ('1X', '1X'), ('X2', 'X2'))?

Generalnie jeśli dany użytkownik nie miał żadnego beta na dany mecz to ma się stworzyć instancja, jak miał to ma tylko zmienić wartość beta, jeśli o to Ci chodziło.

Score trzymam w matchu bo każda drużyna będzie miała co
  • Odpowiedz