我想使用UUID字段作为我的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']
而我的Views.py是
class CartViewSet(CreateModelMixin, RetrieveModelMixin, GenericViewSet):
queryset = Cart.objects.prefetch_related('items__product').all()
serializer_class = CartSerializer
我的数据库是Postgres SQL
My Error when I browse my api my guid
1条答案
按热度按时间8mmmxcuj1#
1.请确保在初次迁移前先创建了UUID字段
uuid = UUIDField(primary_key=True, default=None, editable=False)
。1.如果您已经完成了初始迁移,则删除数据库并重新创建它,并且不要忘记删除迁移文件。
1.再次运行迁移,您应该可以开始了。