Нулевое значение в столбце ... нарушает ограничение not-null
Переполнение стека.
 У меня есть приложение Django, которое управляет списками товаров и тегами (категориями). Они связаны с полем ManyToMany на модели Item. Следующий код представляет собой соответствующий код из моделей
В качестве базы данных я использую PostgreSQL.
#models.py
class Tag(models.Model):
    title = models.CharField(max_length=300, unique=True)
    slug = models.SlugField(max_length=300, blank=True, null=True, unique=True)
    objects = TagManager()
    def generate_token(self):
        self.slug = get_random_string(length=15)
        return self.slug
    def save(self, *args, **kwargs):
        if self.slug is None:
            self.generate_token()
        super().save(*args, **kwargs)
 И модель Item 
class Item(models.Model):
    seller = models.ForeignKey(User,related_name='seller', on_delete=models.CASCADE)
    
    #the following lines are the problem lines
    tag = models.ManyToManyField(Tag, related_name='tag', blank=True) 
    slug = models.SlugField(max_length=30, blank=True, null=True, unique=True)
    objects = ItemManager()
    def generate_token(self):
        self.slug = get_random_string(length=15)
        return self.slug
    def save(self, *args, **kwargs):
        if self.slug is None:
            self.generate_token()
        super().save(*args, **kwargs)
Этот код работал нормально, пока я не попробовал добавить элемент со страницы Django Admin. Я заполнил все поля, добавил два тега из меню <select> и попытался сохранить его.
Однако меня встретило следующее сообщение об ошибке
null значение в столбце "tag_id" отношения "item_item" нарушает ограничение not-null
и
DETAIL: Неудачная строка содержит (18, Название товара здесь, Это описание, 40.00, items/pattern.png, lXBjgo70QIrI8aF, 1, null).
Это полный отслеживание
Извините за все блоки кода/ошибки
Что я пробовал
Я перепробовал множество способов избавиться от этой ошибки, но ничего не помогло.
- Удалены миграции
 -  Добавил, удалил, прочитал 
null=Trueна полях slug обеих моделей -  Сделал то же самое для 
blank=True 
 Ни один из этих способов не сработал. Я искал в Интернете готовое решение, но они привели меня только к добавлению null=True на мои поля, которые у меня уже есть.
Я очень озадачен тем, почему возникает эта ошибка.
tag_id выделяется, так как я предполагаю, что ошибка not-null связана с этим, и я предполагал, что id присваиваются при создании объекта.
Заранее благодарю
Думаю, проблема в том, что вы не передаете класс модели и self в метод super
Изменить методы сохранения
super(Tag, self).save(*args, **kwargs)
super(Item, self).save(*args, **kwargs)
                     Моим решением было просто определить tag_id в модели Item. Код для интересующихся приведен ниже
tag_id = models.IntegerField(default=1, editable=False)
Я немного беспокоюсь о перспективности этого, но на данный момент это работает. Я обновлю этот ответ, если возникнет какая-либо другая проблема
 добавьте атрибут null=True для поля tag модели Item следующим образом
tag = models.ManyToManyField(Tag, related_name='tag', blank=True, null=True)