Создаете кнопку «Подписаться»?Как максимизировать эффективность? - PullRequest
1 голос
/ 13 июля 2011

Я использую Django. Я хочу создать кнопку подписки, которая после нажатия будет включать текущего пользователя в группу подписчиков, а затем отображать количество подписчиков. Также есть кнопка отмены подписки, которая, очевидно, делает обратное.

Мой вопрос заключается в том, как я могу сделать это с наименьшим количеством возможных запросов и максимально эффективно. Я собираюсь сделать много-многократный перевод между пользователем и постом (который следует). Поэтому я предполагаю, что как только я нажму кнопку «следовать / отменить подписку», будет один запрос, вставляющий новый объект в user, user_to_post и таблицы записей. А для получения количества подписчиков потребуется еще один запрос из таблицы user_to_post со счетчиком. Я не уверен в этом, но я предполагаю, что этот подход займет всего 4 запроса (3 вставки / удаления, 1 выбор).

Как лучше / эффективнее это сделать?

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2011

ИМХО:

А для получения количества подписчиков потребуется еще один запрос из таблицы user_to_post с количеством.

  1. Вам не нужно ничего извлекать, если вы вставляете что-то, чем оно у вас есть. Возьмите эти данные и используйте их ... Или даже направьте их к другой функции, например, к ненужным переменным или так далее например, у вас может быть номер user_to_post на вашей странице. Так что это присутствует в вашем запросе. (если вы их визуализируете) И вы можете направить эту переменную через форму и сделать var_count + 1 или -1 в зависимости от того, что вы увеличиваете или уменьшаете

  2. Зачем вам нужно сделать 3 запроса, чтобы что-то опубликовать? Покажите свой код (просмотреть или где вы делаете запрос), пожалуйста ... Вы можете написать его_, чтобы сделать один запрос для записи данных в 3 модели ... Если у вас есть поля, которые влияют на основную модель. Например, у вас есть внешний ключ / поле многие ко многим со связанной моделью, вы можете сделать 1 запрос и затем получить доступ к его данным через конструкцию select_related (). См .: выбор связанных ссылок Django API и Выполнение запросов .

Не стесняйтесь задавать более конкретные вопросы с вашим кодом ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...