Django Rest Framework - DataError: целое число вне диапазона

Я создаю сайт в стиле Urban Dictionary, где у меня есть одна модель django:

class Term(models.Model):
    term_name=models.CharField(max_length=100)
    definition=models.TextField()
    example=models.ImageField(blank=True)
    uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    tags = TaggableManager(blank=True)

    def __str__(self):
        return self.term_name

Я использую taggit для добавления тегов, но когда я тестирую добавление тегов через Django Rest Framework, я получаю ошибку:

Internal Server Error: /api/glossary/a9cc167c-f5c2-11ec-a11a-1e4794e8627e
Traceback (most recent call last):
  File "/Users/almoni/.local/share/virtualenvs/screenplayrules_django-lZL7DxO_/lib/python3.9/site-packages/django/db/models/query.py", line 657, in get_or_create
    return self.get(**kwargs), False
  File "/Users/almoni/.local/share/virtualenvs/screenplayrules_django-lZL7DxO_/lib/python3.9/site-packages/django/db/models/query.py", line 496, in get
    raise self.model.DoesNotExist(
taggit.models.TaggedItem.DoesNotExist: TaggedItem matching query does not exist.

за которым следует тонна ошибок File, затем:

django.db.utils.DataError: integer out of range

Мой процесс до получения этой ошибки заключался в том, чтобы просто протестировать tags = TaggableManager(blank=True), который у меня был в моей модели Term. Поэтому я зашел на localhost:8000 и попытался разместить тег:

enter image description here

После того, как я нажал кнопку put, я получил ошибку, которую я ранее показывал в терминале и эту ошибку страницы:

enter image description here

Я все еще довольно новичок в django и никогда раньше не использовал taggit, поэтому я немного запутался здесь.

После некоторого копания я нашел ответ на аналогичный вопрос, размещенный на github. Похоже, проблема была в том, что мой uuid был моим primary_key=True. Как только я поменял это, а также изменил свои урлы с <uuid:pk>, проблема исчезла.

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

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