Bil*_*ble 1 django django-rest-framework
我想获取在Django REST Framework API调用期间创建的记录的ID,以便我可以在我需要运行的一些代码中使用它作为API调用的结果.
简而言之,我正在使用POST调用上传一个图像文件到我的Photo模型,我希望,作为POST调用的结果(并在ViewSet中处理它),插入刚刚创建的Photo记录的ID进入另一个模型的记录(在我的例子中称为Item模型).
我的问题是PhotoViewSet中的行踪可以访问创建记录的ID吗?
我的照片模型如下所示:
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)
Run Code Online (Sandbox Code Playgroud)
关联的序列化程序如下所示:
class PhotoSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Photo
read_only_fields = ('user', 'photo', 'item')
Run Code Online (Sandbox Code Playgroud)
相关的ModelViewSet如下所示:
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'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |