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
@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?

//EDIT

Doszedłem w dokumentacji jak dodać ten parametr widget. Tylko co to w tym przypadku da? Nie widzę, żadnego wbudowanego widgetu który coś by tutaj pomógł.
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 betu.

Ciągle nie doszedłem do rozwiązania
Pobierz
źródło: comment_Wc5G1qvslkEC8aZIwnsiKdbsX17wjtUV.jpg
@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 score
@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 najmniej