Django.db.utils.IntegrityError: NOT NULL constraint failed: app_users.key_value_id

Здесь у меня есть две модели Keys и Users, я создаю POST API, поэтому я столкнулся с этой ошибкой

UserModel.py

class Users(AbstractBaseUser):
       vendor_name = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None)
       key_value = models.ForeignKey(KeyTable, on_delete=models.CASCADE, default=None, null=True)
       username = models.CharField(max_length=100, verbose_name="username", unique=True)
       password = models.CharField(max_length=100)
       hardware_id = models.CharField(max_length=150, null=True)
       created_by = models.DateField(verbose_name="created_by", auto_now_add=True)

       USERNAME_FIELD = "username"
       REQUIRED_FIELDS = ['password', 'hardware_id']

       is_active = models.BooleanField(default=True)
       is_admin = models.BooleanField(default=False)
       is_role_vendor = models.BooleanField(default=False)
       is_role_customer = models.BooleanField(default=True)

       def __str__(self):
             return self.username

       objects = UserManager()

KeyModel.py, где хранятся ключи

class KeyTable(models.Model):
      key_id = models.IntegerField(unique=True, auto_created=True)
      key_value = models.CharField(max_length=100)
      issue_date = models.DateField(max_length=100)
      expiry_date = models.DateField()
      status = models.CharField(max_length=50)
      license_tenure = models.IntegerField()

      def __str__(self):
          return self.key_value

KeySerializer

class KeySerializer(serializers.ModelSerializer):
    class Meta:
         model: Keys
         fields = ['key_id', 'key_value', 'issue_date', 'expiry_date', 'status', 'license_tenure']

Встречи с ошибками:

django.db.utils.IntegrityError: NOT NULL constraint failed: app_users.key_value_id

Помогите мне решить эту ошибку, я буду благодарен, спасибо

Мукул, вы можете установить null=True и blank=True в поле модели, которое вызывает ошибку. или вы можете удалить приложение и создать его снова с тем же кодом, этот трюк также может сработать.

Но если вы не нашли решение, то вы можете найти несколько решений здесь.

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