Ich versuche, meine erste Django App - Sportvorhersagen Spiel zu erstellen.
ich Benutzer möchte von drei möglichen Ergebnissen wählen mit 3 Tasten (Bilder), die 3 verschiedene Werte an die DB übergeben:
1 - Heimmannschaft gewinnt
0-
Wie speichert man den Button-Wert in der Datenbank im Django?
Mannschaft gewinnt -
2 Unentschieden Ich kann Daten mithilfe von Formularen speichern, wenn ich etwas in sie einfüge, aber Wie übergebe ich den Wert dieser Schaltflächen an meine Datenbank?
Code auf meinem game.html:
{% csrf_token %}
{{ form }}
<input type="submit" value = 1>
<input type="submit" value = 0>
<input type="submit" value = 2> </form>
und meine Ansicht:
def game(request, Game_id):
thisgame = get_object_or_404(Game, pk=Game_id)
nextgame = int(thisgame.id)+1
template = loader.get_template('polls/game.html')
form = NewBetForm(request.POST or None)
current_user = request.user
allgames = Game.objects.all()
betchoices = BetChoice.objects.all()
context = { 'thisgame': thisgame,
'nextgame': nextgame,
'form': form,
'current_user': current_user,
'betchoices': betchoices,}
if form.is_valid():
bet = form.save(commit=False)
bet.gameid = Game.objects.get(id=Game_id)
bet.userid_id = current_user.id
bet.save()
else:
print (form.errors)
und meine Form:
class NewBetForm(forms.ModelForm):
class Meta:
model = GameBet
fields = ['bet']
und die Fehler, die ich bekommen ist Bet - this field is required
Vielen Dank für alle Ideen!
Hallo @ Snip77, danke für y unsere Antwort. Ich brauche 3 Knöpfe, also sollte ich jeden anders benennen? Im Moment habe ich 'MultiValueDictKeyError (repr (key))' mit lokalen Vars: Taste '\t - 'Send1' Selbst \t { 'csrfmiddlewaretoken': Code‘, 'SEND3': '3'} ' – Patr01
ja, sollten Sie rufen Sie sie diffrent.beacuse Sie wollen Knopf im Server side.call dann wie: 1, 2 und 3.in Server-Seite erkennen, müssen Sie Knopf mit welchem Namen clicked kennen. wenn Sie ein anderes Problem haben, sagen Sie mir, vielleicht kann ich Antwort :) –
Ich glaube, mir fehlt hier noch etwas. Brauche ich den "if form is valid()" - Teil in diesem Ansatz? Im Moment habe ich die folgenden, aber es tut nichts: 'wenn request.method == 'POST': \t \t wenn request.POST [ "bet"] == 1: \t \t \t wenn form.is_valid() : \t \t \t \t Wette = form.save (Commit = false) \t \t \t \t bet.gameid = Game.objects.erhalten (id = Game_id) \t \t \t \t bet.userid_id = current_user.id \t \t \t \t bet.save() \t \t \t anderes: \t \t \t \t print (form.errors) ' – Patr01