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'])
Вернуться на верх