Django: неожиданные аргументы ключевых слов при попытке создать новый объект
я пытаюсь создать новый объект, но получаю сообщение об ошибке "player_team() received unexpected keyword arguments: 'player', 'team'"
Я только начинаю осваивать Django и работаю над личным проектом. Я сделал все возможное, чтобы решить проблему, но все равно получаю эту необъяснимую ошибку.
Вот моя модель
class player_team(models.Model):
Player = models.ForeignKey(player, on_delete = models.CASCADE)
Team = models.ForeignKey(team, on_delete = models.CASCADE, null=True)
вот мой взгляд
def assign_team(request):
if request.method == "POST":
PlayersID = request.POST.get("Players")
TeamsId = request.POST.get("Teams")
player_team.objects.create(
player = PlayersID,
team = TeamsId
)
return redirect(request.META['HTTP_REFERER'])
Вы написали Player в models.py и player при создании объекта, поэтому, я полагаю, вы использовали либо Player, либо player в обоих местах.
Существует проблема с тем, как вы пытаетесь создать новый объект player_team
. Ошибка вызвана именами полей, которые вы передаете в create()
, поскольку они не совпадают с именами полей в вашей модели (Player
и Team
), что заставляет Django интерпретировать их как неожиданные аргументы ключевых слов.
Если вы передаете по одному ID для игрока и команды, вот как вы можете исправить представление, чтобы имена полей соответствовали именам полей в вашей модели:
from .models import player_team
def assign_team(request):
if request.method == "POST":
player_id = request.POST.get("Players")
team_id = request.POST.get("Teams")
# Create a new player_team object using the correct field names
player_team.objects.create(
Player_id=player_id,
Team_id=team_id,
)
return redirect(request.META['HTTP_REFERER'])