即使我的perform_create方法正在与请求的用户一起保存时设置这些字段,我怎么能用Postman设置这些字段?

问题描述

这是我的序列化器

class ItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Item
        fields = '__all__'

我的商品模型

class Item(models.Model):
    uuid = models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
    brand = models.ForeignKey(Brand,on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    #need to add images
    description = models.TextField()
    price = models.CharField(max_length=50)
    created_on = models.DateTimeField(auto_Now_add=True)

这是视图集

class ItemViewSet(viewsets.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer
    permission_classes = [IsOwnerOrReadOnly]

    def perform_create(self,serializer):
        serializer.save(user=self.request.user)
        brand_qs = Brand.objects.filter(owner=self.request.user)
        if brand_qs.exists:
            serializer.save(brand=brand_qs[0])

因此,在使用邮递员时,仍然需要输入用户和品牌字段,并且可以使用户字段成为我想要的任何用户,而不会与请求的用户一起保存。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...