Django Rest Framework; Как создать API для модели, которая имеет несколько ключей для нескольких моделей? - PullRequest
0 голосов
/ 08 апреля 2020

У меня 3 модели. User, Refrigerator и UserRefrigerator.

class User(Model):
    uid = CharField(max_length=50, unique=True)
    name = CharField(max_length=50)

class Refrigerator(Model):
    uid = CharField(max_length=50, unique=True)
    name = CharField(max_length=50)

class UserRefrigerator(Model):
    user = ForeignKey(User, related_name="user_refrigerators")
    device = ForeignKey(User, related_name="refrigerator_users")
    is_active = BooleanField(default=True)

Я использую инфраструктуру отдыха вместе с rest_framework_nested. У меня есть конечные точки для извлечения и создания пользователей и холодильников, например

/user
/refrigerators

. Я хочу создать следующие API для модели UserRefrigerator

  • Создать запись холодильника пользователя в модели UserRefrigerator.
  • Получить все холодильники для пользователя.
  • Удалить запись холодильника пользователя из модели UserRefrigerator.

Каким будет стандарт API REST для достижения этой цели?

Я думал о создании следующих API.

# Create user refrigerator entry
POST /users/user-uid/refrigerators/
{
    "refrigerator": "refrigerator-uid"
}

# List all refrigerators for a user.
GET /users/user-uid/refrigerators/
Response should be list of refrigerator objects.

Я могу написать свой собственный APIView для достижения этой цели, но я хотел знать, можно ли это сделать с помощью ViewSets и Serializer.

...