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 и попытался разместить тег:
После того, как я нажал кнопку put, я получил ошибку, которую я ранее показывал в терминале и эту ошибку страницы:
Я все еще довольно новичок в django и никогда раньше не использовал taggit, поэтому я немного запутался здесь.
После некоторого копания я нашел ответ на аналогичный вопрос, размещенный на github. Похоже, проблема была в том, что мой uuid
был моим primary_key=True
. Как только я поменял это, а также изменил свои урлы с <uuid:pk>
, проблема исчезла.
Почему это так, я не очень понимаю, но я смог решить свою проблему.