UUID в качестве первичного ключа выдает ошибку переполнения, несмотря на попытку использовать taggit

Я пытаюсь использовать UUID в качестве первичного ключа в модели, но при использовании перенаправления возникает ошибка переполнения.

Я искал в Интернете похожие проблемы, поскольку предполагаю, что люди хотят сделать это довольно часто. Я наткнулся на: https://github.com/jazzband/django-taggit/issues/679

Итак, я установил dajngo-taggit и попытался добавить сниппет по этой ссылке в свой код, но проблема осталась.

Ниже приведен мой текущий код, использующий сниппет:

[models.py]

from django.db import models
from taggit.managers import TaggableManager
from taggit.models import GenericUUIDTaggedItemBase, TaggedItemBase

class Person(models.Model):
    uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    # ...

class UUIDTaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase):
    # If you only inherit GenericUUIDTaggedItemBase, you need to define
    # a tag field. e.g.
    # tag = models.ForeignKey(Tag, related_name="uuid_tagged_items", on_delete=models.CASCADE)

    class Meta:
        verbose_name = _("Tag")
        verbose_name_plural = _("Tags")

class Car(models.Model):
    person = models.ForeignKey(Person, null=True, on_delete=models.SET_NULL)
    brand = models.CharField(max_length=50)
    colour = models.CharField(max_length=50)
    # ...

[urls.py]

# ...    
urlpatterns = [
    # ...
    path("<uuid:pk>/car/<int:id>/", CarDetail.as_view(), name="car_detail"),
    # ...
]

И ошибка, которую я получаю:

OverflowError at /en/person/c8c91051-5773-4c69-9587-92b468186db7/car/1/

Python int слишком большой для преобразования в SQLite INTEGER

У вас есть идеи, что я могу попробовать сделать, чтобы исправить это? Я занимаюсь этим вопросом уже довольно долгое время. Спасибо!!!

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