Я хочу, чтобы мой отдых api мог добавлять объекты, но есть твист.Как я могу заставить идентификатор пользователя как значение при работе с фреймворком django rest?
В моей модели есть поле, которое называется user
, которое может быть None для анонимных пользователей или идентификатором того, кто его устанавливает.
Как я могу обеспечить это элегантным способом?
Также, если поле user
равно None Я хочу, чтобы идентификатор нового объекта хранился в массиве в сеансе анонимных пользователей, поэтому он может быть назначен, если он когда-либо решает зарегистрироваться.
Вот как я создал Viewset:
class PointAPIView(viewsets.ModelViewSet):
queryset = Point.objects.all()
serializer_class = PointSerializer
permission_classes = (IsOwnerOrReadOnly,)
Я подозреваю, что я должен написать пользовательский метод создания является то, что правильно? Если да, то как это должно выглядеть? В документации только говорится, что она есть, но не то, как она должна быть структурирована и что ей нужно вернуть. Можете ли вы показать мне пример фиктивного метода, где я могу поместить свою логику?
Благодарим вас за внимание!
EDIT: Потому что кто-то спросил. Модель будет выглядеть примерно так:
class Point(models.Model):
user = models.ForeignKey('auth.User')
value = models.IntegerField()
Теперь вопрос, как я могу заставить user
поле быть request.user при создании точечного объекта через апи покоя.
Вы можете включать в свои модели в вашем вопросе? В настоящее время его трудно ответить, не имея другого контекста для работы. –
Извините, если вопрос не был на 100% понятным. Я добавил краткий пример модели. Теперь есть модель с пользовательским полем. Я хочу, чтобы это поле было request.user, когда создание выполняется поверх остальных api. – JasonTS