【发布时间】:2018-11-12 05:45:27
【问题描述】:
我无法通过补丁请求更新记录,我已经看到我必须添加更新方法,但我无法理解它实际上是如何工作的。我是 Django 新手。
模式是mysql:
model.py
class Medida(models.Model):
descripcion = models.CharField(max_length = 100)
class Meta:
ordering = ('descripcion',)
class Sucursal(models.Model):
descripcion = models.CharField(max_length = 100)
class Meta:
ordering = ('descripcion',)
class Item(models.Model):
codigo = models.CharField(max_length = 4)
descripcion = models.CharField(max_length = 100)
class Meta:
ordering = ('codigo',)
class Almacen(models.Model):
item = models.ForeignKey(Item, on_delete = models.CASCADE)
peso = models.FloatField()
medida = models.ForeignKey(Medida, on_delete = models.CASCADE)
sucursal = models.ForeignKey(Sucursal, on_delete = models.CASCADE)
class Meta:
ordering = ('item',)
serializers.py
class MedidaSerializer(serializers.ModelSerializer):
class Meta:
model = Medida
fields = ('id', 'descripcion')
class SucursalSerializer(serializers.ModelSerializer):
class Meta:
model = Sucursal
fields = ('id', 'descripcion')
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('id', 'codigo', 'descripcion')
class AlmacenSerializer(serializers.ModelSerializer):
medida = MedidaSerializer(read_only = True)
item = ItemSerializer(read_only = True)
sucursal = SucursalSerializer(read_only = False)
class Meta:
model = Almacen
fields = ('id', 'item', 'peso', 'medida', 'sucursal')
json 的答案是正确的,但是当你想修改时,在这种情况下是一个带有对象的分支。不工作。
例如:
请求:
{
"id": 2,
"item": {
"id": 2,
"codigo": "0002",
"descripcion": "Anilina"
},
"peso": 2000.1,
"medida": {
"id": 2,
"descripcion": "Kilogramos"
},
"sucursal": {
"id": 2,
"descripcion": "Magalena"
}
}
补丁:
{
"id": 2,
"item": {
"id": 2,
"codigo": "0002",
"descripcion": "Anilina"
},
"peso": 2000.1,
"medida": {
"id": 2,
"descripcion": "Kilogramos"
},
"sucursal": {
"id": 1,
"descripcion": "La Plata"
}
}
感谢您抽出宝贵时间阅读我的查询,并提前感谢您的回复。
【问题讨论】:
-
发布相关视图
标签: python django angular api django-rest-framework