РЕДАКТИРОВАТЬ: Предоставленное решение работает!
Я написал модифицированную рейтинговую систему ELO для FIFA.Я хочу показать таблицу лидеров ELO с игроками (я могу это сделать), показать историю игр, а также иметь возможность выбрать игрока и просмотреть его личную историю игр.Моя предполагаемая версия занятий представлена ниже.Я могу создать таблицу лидеров и историю игр, если я установлю атрибут player1 и player2 для Game в строку и определю имя вручную, но хочу, чтобы игра и игроки были связаны.
Когда я пытаюсь перенести это решениев mySQL это сообщение об ошибке
ERRORS:
blog.Game.player1: (fields.E304) Reverse accessor for 'Game.player1' clashes with reverse accessor for 'Game.player2'.
HINT: Add or change a related_name argument to the definition for 'Game.player1' or 'Game.player2'.
blog.Game.player2: (fields.E304) Reverse accessor for 'Game.player2' clashes with reverse accessor for 'Game.player1'.
HINT: Add or change a related_name argument to the definition for 'Game.player2' or 'Game.player1'.
Models.py в папке django
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Player(models.Model):
name = models.CharField(max_length=100)
elo = models.IntegerField()
date_added = models.DateTimeField(default=timezone.now)
def __str__(self):
return str(self.name) + " = " + str(self.elo) + " - Joined " +
str(date_add)
class Game(models.Model):
date_played = models.DateTimeField(default=timezone.now)
player1 = models.ForeignKey(Player,on_delete=models.CASCADE)
p1goal = models.IntegerField()
player2 = models.CharField(max_length=100)
p2goal = models.ForeignKey(Player,on_delete=models.CASCADE)
def __str__(self):
return str(self.date_played) + " - " + str(self.player1.name) + " " + str(self.p1goal) + " to " + \
str(self.p2goal) + str(self.player2.name)