Я создаю API, используя django rest framework.Я хочу изменить только одно поле в модели, которое является полем чтения, если я перейду к определенному URL
моей модели:
class Notification(PolymorphicModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_by = models.ForeignKey(ElsUser, on_delete=models.CASCADE, default=None, related_name="creatednotifications")
created_on = models.DateTimeField(default=timezone.now)
created_for = models.ForeignKey(ElsUser, on_delete=models.CASCADE, default=None, related_name="receivednotifications")
read = models.DateTimeField(default=None, null=True, blank=True)
message = models.CharField(default=None, blank=True, null=True, max_length=800)
В APis, которые я сделал, перечислены уведомления для входа в систему.user.
Я хочу реализовать следующее:
notification/<:id>/markread
notification/<:id>/markunread
Если я перейду к этому конкретному URL, я хочу изменить поле чтения. Например, сделайте его None, если пометить как непрочитанное.,Также мне нужно проверить, получил ли вошедший в систему пользователь уведомление с этим идентификатором. Я знаю основы и как создать URL
class NotificationMarkRead(generics.UpdateAPIView):
serializer_class = NotificationSerializer
def get_queryset(self):
queryset = Notification.objects.filter(created_for=self.request.user)
return queryset
class NotificationMarkUnread(generics.UpdateAPIView):
serializer_class = NotificationSerializer
def get_queryset(self):
queryset = Notification.objects.filter(created_for=self.request.user)
return queryset
def update
Моя первоначальная попытка переопределить метод put в представлении update_API