Sagen, ich habe diese Modelle:Django Rest Rahmen Update Filefield eines Modells
class House(models.model):
address = models.CharField(max_length=100)
class HouseImage(models.Model):
image = models.ImageField(...)
house = models.ForeignKey(House, related_name='images')
Und dieses Serializer:
class HouseImageSerializer(serializers.ModelSerializer):
class Meta:
model = HouseImage
fields = ('image',)
class HouseSerializer(serializers.ModelSerializer):
images = HouseImageSerializer(many=True, required=False)
class Meta:
model = House
fields = ('address', 'images',)
Und diese Ansicht:
class HouseDetails(generics.RetrieveUpdateDestroyAPIView):
serializer_class = HouseSerializer
queryset = House.objects.all()
ich, damit ich bin Anrufe von meinem Frontend. Einer erstellt das Haus (und es funktioniert) und der zweite soll die Bilder senden. Deshalb habe ich in der zweiten Anruf mache eine PATCH Anfrage (mit axios) und mein request.data
ist {'images': [InMemoryUploadedFile1, InMemoryUploadedFile2,...]}
Fragen:
Bin ich durch die Definition der
images
Feld aufHouseSerializer
richtig so weit zu tun? Wenn es richtig ist, was soll ich sonst tun? Weil ich weiß, muss ich irgendwie jedes Bild inimages
Liste in meinemrequest.data
auf demimage
Feld inHouseImage
zuordnen.Gibt es einen besseren Ansatz bei der Umsetzung?
außer Kraft zu setzen Aber es ist nicht ein Patch Gesetzt, gibt es keine Möglichkeit, Modelle und ihre Fremdschlüssel mit einem einzigen Anruf (Einzelansicht) zu aktualisieren? –
können Sie versuchen, das Update zu überschreiben –