运算符不存在:Django中的Bigint=uuid

wtzytmuj  于 2022-10-15  发布在  Go
关注(0)|答案(1)|浏览(189)

我想使用UUID字段作为我的id(主键),但它有问题,我无法修复它
这是我的模型

  1. class Cart(models.Model):
  2. id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
  3. created_at = models.DateTimeField(auto_now_add=True)
  4. class CartItem(models.Model):
  5. cart = models.ForeignKey(Cart, on_delete=models.CASCADE , related_name='items')
  6. product = models.ForeignKey(Product, on_delete=models.CASCADE)
  7. quantity = models.PositiveSmallIntegerField()
  8. class Meta:
  9. unique_together = [['cart'], ['product']]

这是我的Serializer.py

  1. class CartItemSerializer(serializers.ModelSerializer):
  2. class Meta:
  3. model = Cart
  4. fields = ['id', 'product', 'quantity']
  5. class CartSerializer(serializers.ModelSerializer):
  6. id = serializers.UUIDField(read_only=True)
  7. items = CartItemSerializer(many=True)
  8. class Meta:
  9. model = Cart
  10. fields = ['id', 'items']

而我的Views.py是

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

我的数据库是Postgres SQL
My Error when I browse my api my guid

8mmmxcuj

8mmmxcuj1#

1.请确保在初次迁移前先创建了UUID字段uuid = UUIDField(primary_key=True, default=None, editable=False)
1.如果您已经完成了初始迁移,则删除数据库并重新创建它,并且不要忘记删除迁移文件。
1.再次运行迁移,您应该可以开始了。

相关问题