Есть модель события, которая привязана к пользователю. При создании события через rest задаю все параметры, кроме пользователя, но он ругается, что пользователь - null. При создании через админ панель и сам сайт пользователь берется через request.user, но как сделать это через rest не знаю
models.py:
class Event(models.Model):
"""Event which create user"""
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE, verbose_name="Пользователь")
title = models.CharField(max_length=70, verbose_name="Название")
content = models.CharField(max_length=300, verbose_name="Содержание")
event_date = models.DateTimeField(verbose_name="Дата события")
def __str__(self):
return self.title
serializers.py:
class EventSerializer(serializers.Serializer):
title = serializers.CharField()
content = serializers.CharField()
event_date = serializers.DateTimeField()
def create(self, validated_data):
return Event.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.content = validated_data.get(
'content', instance.content)
instance.event_date = validated_data.get('event_date',
instance.event_date)
instance.save()
return instance
views.py(часть сериалайзера):
class EventView(APIView):
def get(self, request):
events = Event.objects.all()
serializer = EventSerializer(events, many=True)
return Response({"events": serializer.data})
def post(self, request):
event = request.data.get('event')
serializer = EventSerializer(data=event)
if serializer.is_valid(raise_exception=True):
event_saved = serializer.save()
return Response({"success": "Event created successfully"})