Закладка реализации логики Django - PullRequest
0 голосов
/ 11 мая 2019

Я занимаюсь разработкой REST API с использованием django rest framework.Теперь я хочу сделать функционал, чтобы пометить некоторые объявления как избранные.Вот некоторые из моих идей:

  1. создание новой модели Избранное, содержащей идентификатор пользователя и идентификатор объявления.Таким образом, мобильное приложение будет извлекать их из таблиц.Однако создание таблицы, содержащей иностранные ключи, выглядело не очень хорошо для архитектуры.
  2. добавление поля массива внутри модели пользователя и сохранение идентификаторов внутри.Пробовал использовать ArrayField из postgres-extensions, но я постоянно получаю ошибку типа, связанную с 'form_size'.Даже при том, что я удалил «form_size» из файлов миграции, как показано здесь , я получаю ошибку 502.

Итак, я должен продолжать использовать ArrayField и пытаться исправить эту ошибку?Или создание таблицы с двумя иностранными ключами выглядит не так уж и плохо?

Пожалуйста, если кто-нибудь сталкивался с ошибкой ввода типа 'form_size', помогите мне.

Спасибо.

Обновление 1. Здесь находится поле избранного в таблице пользователей

favorites = ArrayField(
        base_field=models.CharField(max_length=50), default=[], blank=True,
    )

Я импортирую эти данные:

````from django.contrib.postgres.fields import ArrayField

UPD 1.

1 Ответ

0 голосов
/ 11 мая 2019

Я могу предложить 2 метода, но предпочитаю второй, так как он проще:
- Создание новой модели «Закладка» - это хорошо, у вас будут внешние ключи для моделей USER и AD, и это позволит вамдобавить другие атрибуты (например, bookmarked_date, тег bookmarks ...)
- Просто добавьте атрибут ManyToMany «Закладки» в модель USER, это просто и должно быть достаточно в вашем случае

...