操作员不存在:bigint = django中的uuid

发布于 2025-02-12 13:52:55 字数 1378 浏览 0 评论 0原文

我想将UU​​ID字段用作我的ID(主键),但是它有问题,我无法修复它,

这是我的模型

class Cart(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created_at = models.DateTimeField(auto_now_add=True)


class CartItem(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE , related_name='items')
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.PositiveSmallIntegerField()

    class Meta:
        unique_together = [['cart'], ['product']]

的serializer.py。

class CartItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Cart
        fields = ['id', 'product', 'quantity']


class CartSerializer(serializers.ModelSerializer):
    id = serializers.UUIDField(read_only=True)
    items = CartItemSerializer(many=True)

    class Meta:
        model = Cart
        fields = ['id', 'items']

class CartViewSet(CreateModelMixin, RetrieveModelMixin, GenericViewSet):
    queryset = Cart.objects.prefetch_related('items__product').all()
    serializer_class = CartSerializer

是我

这 href =“ https://i.sstatic.net/do8c9.png” rel =“ nofollow noreferrer”>当我浏览我的API时,我的错误

I want to use uuid field as my id (primary key) but there is something wrong with it and i can't fix it

this is my model

class Cart(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created_at = models.DateTimeField(auto_now_add=True)


class CartItem(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE , related_name='items')
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.PositiveSmallIntegerField()

    class Meta:
        unique_together = [['cart'], ['product']]

This Is MY Serializer.py

class CartItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Cart
        fields = ['id', 'product', 'quantity']


class CartSerializer(serializers.ModelSerializer):
    id = serializers.UUIDField(read_only=True)
    items = CartItemSerializer(many=True)

    class Meta:
        model = Cart
        fields = ['id', 'items']

And My Views.py is

class CartViewSet(CreateModelMixin, RetrieveModelMixin, GenericViewSet):
    queryset = Cart.objects.prefetch_related('items__product').all()
    serializer_class = CartSerializer

My database Is postgres Sql

My Error when I browse my api my guid

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

入怼 2025-02-19 13:52:55
  1. 确保创建一个UUID字段uuid = uuidfield(primary_key = true,default = none,editable = false)首先在您初始迁移之前。

  2. 如果您已经完成了初始迁移,请删除数据库并重新创建它,不要忘记删除迁移文件。

  3. 再次运行迁移,您应该很好。

  1. Make sure that you create a UUID field uuid = UUIDField(primary_key=True, default=None, editable=False) first before your initial migration.

  2. If you have already done the initial migration, then drop the database and recreate it and don't forget to delete the migration files.

  3. Run migrations again and you should be good to go.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文