Задать вопрос
phisher13
@phisher13

Как соединить модели между собой в django?

Есть 2 модели (User, Book), нужно чтобы у пользователя была возможность добавлять книгу в избранное.
По идеи, нужно one-to-many relation
Но я не совсем понимаю как отобразить это в коде.
Спасибо)
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@C0uchP0tat0
Думаю ответ будет примерно такой
# model
class Bookmark(models.Model):
class Meta:
abstract = True

user = models.ForeignKey(User)

class BookmarkObject(Bookmark):
class Meta:
db_table = "bookmark_object"

obj = models.ForeignKey(Book,
null=True,
on_delete=models.CASCADE)

class BookmarkView(APIView):
model = BookmarkObject
permission_classes = [IsAuthenticated]
def post(self, request, pk):
# получаем пользователя
user = self.request.user.id
# получаем или создаём закладку
bookmark_object, created = self.model.objects.get_or_create(user=user,
obj_id=pk)
if not created:
bookmark_object.delete()

return Response(status.HTTP_201_CREATED)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы