0

我在后端使用 django 并在前端做出本机反应,我有一个带有破坏的通用视图集,创建 mixins。在我的用例中,我在用户登录时发出一个发布请求,然后在他注销时删除同一个实例。问题是我不知道创建实例的 pk 以在删除请求中发送它。

有没有办法知道创建的模型实例的 pk 然后在删除请求中使用它?

注意:模型 pk 是在 Django 中自动生成的,而不是创建的字段。观点是

class DeviceViewSet(mixins.ListModelMixin, mixins.CreateModelMixin,
                         mixins.DestroyModelMixin, viewsets.GenericViewSet):
    serializer_class = DeviceSerializer
    queryset = Device.objects.all()
class DeviceSerializer(serializers.ModelSerializer):
    class Meta:
        model = Device 
        fields = '__all__'

4

1 回答 1

0

由于您的数据似乎存在于用户会话的生命周期中,因此会话听起来是存储它的好地方。

例如,在登录时,您可以将 pk 存储在会话中:

# once the user is logged in and you have created this obj
obj = ThePersonalizedModel.objects.create(....)
request.session['personalized_obj_pk'] = obj.pk

然后每当您需要删除它时,并且在会话到期之前:

delete_pk = request.session['personalized_obj_pk']

有关会话的更多信息,请参阅https://docs.djangoproject.com/en/4.0/topics/http/sessions/#session-serialization

于 2022-02-03T17:53:20.217 回答