を投稿する属性を、私は次のモデルジャンゴ休憩フレームワーク - 多くの分野に多くのシリアル化すると、操作
class Metrics(models.Model):
name = models.CharField(
max_length=255,
blank=True,
verbose_name='Nombre'
)
value = models.DecimalField(
max_digits = 5,
decimal_places = 3,
verbose_name = 'Valor',
null = True,
blank = True
)
そして、私はManyToManyField
関係を持っている別のモデルでを持ってMetrics
モデルへ
class PatientMonitoring(models.Model):
metrics = models.ManyToManyField(Metrics, verbose_name='Métricas',
)
マイserializers.py
この方法のファイルの外観:
class MetricsSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model= Metrics
fields = ('name','value',)
class PatientMonitoringSerializer(serializers.HyperlinkedModelSerializer):
metrics = MetricsSerializer(many=True)
class Meta:
model = PatientMonitoring
fields = ('url', 'id', 'metrics')
#depth=2
def create(self,validated_data):
metrics_data = validated_data.pop('metrics')
metric = Metrics.object.create(**validated_data)
for metric_data in metrics_data:
Metrics.objects.create(metric=metric,**metrics_data)
metric.save()
return metric
結果は私のモデルは、シリアライズされていることですが、彼らは、 `は、POSTの許可とフォームビューを持っていけない、更新されたり
を作成し、私はとの仕事のために、ここで作成する方法、which is describedを定義していますされていませんモデルはシリアライズされ、書き込み操作と書き込み操作はありますが、どのようにプロセスがこの機能をすべて果たしているのか分かりません。 このような場合にPOSTメソッドを使用してモデルと属性を操作する方法はありますか?
*私は、このような@RossRogersや@Nirriとしてcurl
経由POST
操作を実行したUPDATE
が私を提案し、動作は以下の通りです:
curl -X POST http://localhost:8000/api/patientmonitoring/ -d "metrics=Grados"
そして、私はこのメッセージが表示されます私のcreate
メソッドとの関係
File "/home/bgarcial/.virtualenvs/nrhb_dev/lib/python3.5/site-packages/rest_framework/serializers.py", line 191, in save
self.instance = self.create(validated_data)
File "/home/bgarcial/workspace/neurorehabilitation-project/patient_monitoring/serializers.py", line 37, in create
metric = Metrics.object.create(**validated_data)
AttributeError: type object 'Metrics' has no attribute 'object'
[28/Jun/2016 17:19:16] "POST /api/patientmonitoring/ HTTP/1.1" 500 104669
[curl](https://en.wikipedia.org/wiki/CURL)json? –
@RossRogers私のJSON公開モデルをカール経由で直接消費できるかどうかを確認しますか?肯定的な場合: '' 'curl http:// localhost:8000/api/patientmonitoring/6/ {" url ":" http:// localhost:8000/api/patientmonitoring/6/"、" id ":6 {"name": "値":null}、{"name": "Grados"、 "value":null}、{"name": "Grados"、 "value" :null}]}% '' ' – bgarcial