【发布时间】:2021-07-30 21:58:27
【问题描述】:
我有类别和产品模型。我为每个模型创建了 2 个序列化程序。当我想添加一个新产品时,我发送这个 json: {"name":"name","price":1,"category":{"id":1}} 但 django 给出错误并说我需要也指定类别名称。我已经给出了 id 那么为什么我还要给出类别名称(具有 id 1 的类别已经存在。我正在尝试将新产品添加到该类别中)?如果我使类别的名称字段不需要 django 不会给出错误。但是当我想添加新类别时,如果我没有在 json 中指定名称字段,它不会给出错误。我希望 django 在我尝试添加新类别时给出“需要名称”错误,但我不希望它在我尝试添加新产品时给出错误。如果我将类别设为只读,当我想更新产品时,它不会更新产品的 category_id。
class Product(models.Model):
name=models.CharField(max_length=32)
price=models.FloatField()
category=models.ForeignKey("Category",on_delete=models.CASCADE)
class Category(models.Model):
name=models.CharField(max_length=32)
class CategorySerializer(ModelSerializer):
class Meta:
model=Category
fields="__all__"
class ProductSerializer(ModelSerializer):
class Meta:
model=Product
fields="__all__"
category=CategorySerializer()
【问题讨论】:
标签: python django django-rest-framework