neu bei django. Was ich versuche, ist ein Modell, das eine OneToOneField-Eigenschaft hat. Wie postest du das?POST verwandte Felder Django Rest Framework
Models.py
Article(models.Model):
name=models.CharField(max_length=50)
description=models.TextField(max_length=200)
Characteristic(models.Model):
article=models.OneToOneField(Article,on_delete=models.CASCADE,primary_key=True)
other=models.FloatField()
another=models.IntegerField()
Serializer.py
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model=Article
field='__all__'
class CharacteristicSerializer(serializers.ModelSerializer):
article=serializers.StringRelatedField()
class Meta:
model=Characteristic
field='__all__'
Views.py POST-Methode (API Basierend)
def post(self, request,format=None):
serializer=CharacteristicSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Wenn ich versuche, mit so etwas POST:
(some_url...)/characteristics/ other=4.4 another=4 post=1
ich den nächsten Fehler:
django.db.utils.IntegrityError: (1048, "Column 'post_id' cannot be null")
Die Idee ist, die ID des Modells Artikel zu erhalten und dann das Modell Merkmal speichern.
Irgendwelche Ideen?
kein django Person dankbar sein werde - Kellnerin ist was ich benutze ... brauchst du nicht nur einen Body für den POST, der die ID der Characteristic-Instanz mit Schlüssel "article" enthält, einen Float mit dem Schlüssel "other" und einen int mit dem Feld "another"? –
Sie müssen POST-Daten in der Anfrage angeben, nicht in der URL. –
Ich habe das in einem anderen Beitrag gefunden, aber Sie müssen es die Daten des anderen Modells geben und meine Frage ist, nur die ID des Modells ARTIKEL http://stackoverflow.com/questions/27365486/how-to- geben Post-zu-A-Django-Ruhe-Framework-Api-mit-verwandten-Modellen – hhc