Переопределение CreateAPIView, доступ к запросу пользователя - PullRequest
0 голосов
/ 09 ноября 2018

как я могу сохранить created_by как запрос пользователя? Обратите внимание, что это поле не определено в сериализаторе

class User(models.Model):
    email = models.EmailField(...)
    name = models.CharField(...)
    created_by = models.ForeignKey('User')

class UserSerializer(serializer.ModelSerializer):
    class Meta:
        model = User
        fields = ['email', 'name']

class CreateUserApiView(CreateAPIView):
    model = User
    serializer_class = CreateRequesterSerializer

    def create(self, request, *args, **kwargs):
        # how can I save `created_by` as request user?
        return super(CreateUserApiView, self).create(request, *args, **kwargs)

1 Ответ

0 голосов
/ 09 ноября 2018

Переопределить метод perform_create() для CreateAPIView

class CreateUserApiView(CreateAPIView):
    # your code

    <b>def perform_create(self, serializer):
        serializer.save(created_by=self.request.user)</b>
...