Django: смешивание моделей и modelForms в одной строке таблицы
Я создаю инструмент для организации турниров и пытаюсь отобразить запланированные матчи в таблице, где каждая строка представляет матч, а столбцы - player1, player1score, player2, player2score, player3, player3score и "Submit Match Result".
Итак, я бы хотел, чтобы записи player1, player2 и player3 в таблице были именами трех игроков в матче (которые уже определены ранее, когда матч был запланирован), в то время как я хочу, чтобы три поля очков были полями ввода. Таким образом, пользователь вводит три оценки игроков и нажимает кнопку "отправить", которая затем должна обновить матч в базе данных, изменив его с "запланированного" на "завершенный" и записав три оценки.
У меня проблема в том, как сделать эту смесь данных из модели Match и из модели MatchForm.
Мой класс матча:
class Match(models.Model):
status = models.CharField(max_length=256, default='Scheduled')
player1 = models.ForeignKey(Player, on_delete=models.CASCADE, related_name = 'player1')
player2 = models.ForeignKey(Player, on_delete=models.CASCADE, related_name = 'player2')
player3 = models.ForeignKey(Player, on_delete=models.CASCADE, related_name = 'player3')
player1score = models.IntegerField(default=0)
player2score = models.IntegerField(default=0)
player3score = models.IntegerField(default=0)
И моя MatchForm:
class MatchForm(forms.ModelForm):
class Meta():
model = Match
fields = ('player1score', 'player2score', 'player3score')
Для иллюстрации идеи того, что я хочу, вот HTML того, что я пытался сделать, прежде чем понял, что мне, вероятно, следует использовать ModelForm:
<table>
{% for m in scheduled_matches %}
<form class="" action="/" method="post">{% csrf_token %}
<tr>
<td>{{ m.player1 }}</td>
<td><input type="number" name="player1score" value="" id="player1score"></td>
<td>{{ m.player2 }}</td>
<td><input type="number" name="player2score" value=""></td>
<td>{{ m.player3 }}</td>
<td><input type="number" name="player3score" value=""></td>
<td><input type="submit" id="button submit-match-{{ m.id }}-button" name="submit-button" value="Submit Match Result"></input></td>
</tr>
</form>
{% endfor %}
</table>
Надеюсь, кто-нибудь сможет помочь мне сориентироваться в том, как построить нужную мне структуру. Заранее спасибо ;)