Я пытаюсь выполнить POST «запись» с помощью Django REST. Я хочу, чтобы Django автоматически установил идентификатор пользователя из зарегистрированного пользователя.Установка идентификатора пользователя автоматически в POST в Django REST
views.py:
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = ItemSerializer
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
serializers.py:
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('id', 'created', 'owner', 'desc')
read_only_fields = ('owner',)
models.py:
class Item(models.Model):
created = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey('appserver.MyUser', related_name='appserver')
desc = models.CharField(max_length=100, blank=True, default='')
Я использую EmailAbstractUser от Джанго-покоя authemail 0.1.4 :
views.py:
class MyUser(EmailAbstractUser):
date_of_birth = models.DateField('Date of birth', null=True, blank=True)
objects = EmailUserManager()
Любая помощь приветствуется.
Вы должны сначала установить th e пользователь пользователя, использующий request.user – Abhishek
, это ваши модели - где ваш POST-код? – professorDante
Когда я пытаюсь опубликовать его, он говорит мне, что я явно должен установить owner_id, поэтому проблема не в самом POST AFAIK. – Henrik