Создание пользовательского разрешения для представления api в django

У меня есть объект задачи и объект предложения. Я пытаюсь добавить разрешение в моем представлении api, которое проверяет, пытается ли тот же пользователь, который создал задачу, создать предложение для этой задачи. Если это тот же пользователь, это не должно быть разрешено, предложение на задачу должно быть разрешено только другим пользователям.

Для создания ставки я использую пример url https://my-app/api/bids/<str:task_id>. чтобы получить задачу, на которую пользователь пытается создать ставку.

В настоящее время в моем файле разрешений я имею следующее:

class CheckTaskUserIsNotBidUser(permissions.BasePermission):
    """Check if the task user is the bid user"""

    def has_object_permission(self, request, view, obj):
        pass

как я могу получить id задачи из url запроса, чтобы я мог запросить модель задачи и проверить, является ли она пользовательской, пожалуйста.

Предположим, что у вас есть models.py следующим образом:

class Task(models.Model):
   owner = models.ForeignKey(User, on_delete=models.CASCADE)

Проверить разрешение можно следующим образом:

class CheckTaskUserIsNotBidUser(permissions.BasePermission):
   def has_object_permission(self, request, view, obj):
      return obj.owner == request.user
Вернуться на верх