ValueError: Невозможно присвоить значение "1": "User.jsgGroupName" должен быть экземпляром "JsgGroup".

Я получаю ValueError: Невозможно присвоить значение "1": "User.jsgGroupName" должен быть экземпляром "JsgGroup". эта ошибка при использовании внешнего ключа в пользовательской модели пользователя. Я предполагаю, что есть какая-то проблема с внешним ключом.

Нет подходящего решения для приложения на основе django rest framework, и я использую drf.

models.py

    from django.db import models
from django.contrib.auth.models import User, AbstractBaseUser, PermissionsMixin, BaseUserManager
from django.utils.translation import gettext_lazy as _
from django.utils import timezone


class Region(models.Model):
    RegionName = models.CharField(max_length=20)
    numGroups = models.IntegerField(default=0)

    def __str__(self):
        return self.RegionName


class Group(models.Model):
    GroupName = models.CharField(max_length=20)
    id = models.IntegerField(primary_key=True, editable=True)
    Region = models.ForeignKey(
        Region, on_delete=models.CASCADE, related_name="groups", null=True, blank=True)

    def __str__(self):
        return self.GroupName


class User(AbstractBaseUser, PermissionsMixin):
    id = models.AutoField(primary_key=True, editable=False)
    username = models.CharField(
        max_length=20, null=True, blank=True, unique=True)
    email = models.EmailField(_('email address'), unique=True)
    GroupName = models.ForeignKey(
        Group, on_delete=models.CASCADE, related_name="groupUser", null=True, blank=True)
    RegionName = models.ForeignKey(
        Region, on_delete=models.CASCADE, related_name="regionUser", null=True, blank=True)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(
        auto_now_add=True, null=True, blank=True)

    objects = CustomUserManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email', 'GroupName','RegionName', ]

    def __str__(self):
        return self.username

Чтобы присвоить ForeignKeys, вам нужен сериализатор, способный к отношениям: https://www.django-rest-framework.org/api-guide/relations/

Вернуться на верх