Ich möchte die ID des Datensatzes erhalten, der während eines Django REST Framework-API-Aufrufs erstellt wurde. Daher kann ich ihn in etwas Code verwenden, den ich ausführen muss des API-Aufrufs.ID des Django-Datensatzes erhalten, nachdem er in einem ModelViewSet erstellt wurde
Kurz gesagt, ich lade eine Bilddatei mit einem POST-Aufruf zu meinem Fotomodell hoch und möchte als Ergebnis dieses POST-Aufrufs (und während der Verarbeitung im ViewSet) die ID des Foto-Datensatzes einfügen wurde gerade in einem anderen Modell in einem Datensatz erstellt (in meinem Fall das Item-Modell genannt).
Meine Frage ist, wo im PhotoViewSet kann ich auf die ID des erstellten Datensatzes zugreifen?
Mein Foto-Modell sieht wie folgt aus:
class Photo(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
photo = models.ImageField(upload_to="userphotos/", height_field=None, width_field=None, max_length=100)
date_submitted = models.DateTimeField(auto_now_add=True)
Die zugehörige Serializer wie folgt aussieht:
class PhotoSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Photo
read_only_fields = ('user', 'photo', 'item')
und die damit verbundene ModelViewSet sieht wie folgt aus:
class PhotoViewSet(viewsets.ModelViewSet):
queryset = Photo.objects.all()
serializer_class = PhotoSerializer
parser_classes = (MultiPartParser, FormParser,)
def perform_create(self, serializer):
the_itemID = self.request.data['item_id']
the_userID = self.request.data['user_id']
the_user = User.objects.get(pk=the_userID)
the_item = Item.objects.get(pk=the_itemID)
serializer.save(user=the_user, item=the_item, photo=self.request.data.get('photo'))
http://stackoverflow.com/questions/6253611/django-how-to-get-the-id-of-the-record-just-saved – WayBehind