Comments 24
Какое-то все это… нерациональное и не параллельное. Интересно, сервер не захлебнется постить в 20-30 групп?
Я правильно понима, что вы сначала постите записи, а потом совершаете обход и собирает ID-постов? Зачем?
Я правильно понима, что вы сначала постите записи, а потом совершаете обход и собирает ID-постов? Зачем?
+1
Я понимаю, что наработки сыроватые, т.к. программист python ещё junior=)С опытом всё придёт)
Нет, постинг записей и собирание постов — разные процессы. Любую статью или новость можно запостить Вконтакте — это одна функция. Параллельно с этим на сервере работает скрипт, который просто через определённое время обновляет отдельные таблицы в базе данных — таблицу для групп и таблицу для постов.
Нет, постинг записей и собирание постов — разные процессы. Любую статью или новость можно запостить Вконтакте — это одна функция. Параллельно с этим на сервере работает скрипт, который просто через определённое время обновляет отдельные таблицы в базе данных — таблицу для групп и таблицу для постов.
0
Наврятли это джуниор, это какой-нибудь стартер.
>>Параллельно с этим на сервере работает скрипт, который просто через определённое время обновляет отдельные таблицы в базе данных — таблицу для групп и таблицу для постов.
Вот это не совсем понятно что вы имели в виду.
>>Параллельно с этим на сервере работает скрипт, который просто через определённое время обновляет отдельные таблицы в базе данных — таблицу для групп и таблицу для постов.
Вот это не совсем понятно что вы имели в виду.
0
Для отправки поста Во Вконтакте нужен список групп, куда можно запостить запись. Этот список периодически обновляется с помощью скрипта, который получает список групп администратора, и если появились новые, добавляет их в базу данных(в таблицу). Точно так же и со всеми последними постами из групп и со стены админа — проверяется, если ли новые, и если есть — добавляются в базу данных.
0
Странное решение. Обычно делаетка так — спрашиваем человека В КАКИЕ группы И ЧТО публиковать.
Простой поймите — крутость системы определяется не тем, сколько процессов совершаются автоматически, а сколько процессов пользователь может кастомизировать под себя.
Простой поймите — крутость системы определяется не тем, сколько процессов совершаются автоматически, а сколько процессов пользователь может кастомизировать под себя.
0
Вы видимо просто не понимаете. С помощью скрипта обновляется список групп админа, это отдельная таблица в базе данных.
В админке у статей/новостей есть поля — отправить на стену админа вконтакте, есть поле manytomanyfield — список этих самых групп. То есть админ САМ выбирает, в КАКИЕ группы ему отправить КОНКРЕТНУЮ запись.
В админке у статей/новостей есть поля — отправить на стену админа вконтакте, есть поле manytomanyfield — список этих самых групп. То есть админ САМ выбирает, в КАКИЕ группы ему отправить КОНКРЕТНУЮ запись.
0
У вас при каждом сохранении статьи, будет создаваться запись вконтакте.
Зачем переопределять метод save(), если есть сигналы?
За try:except без указания типа исключения — нужно надавать по рукам.
if len(groups) — то же самое, что и if groups
Зачем переопределять метод save(), если есть сигналы?
За try:except без указания типа исключения — нужно надавать по рукам.
if len(groups) — то же самое, что и if groups
+3
Нет, запись вконтакте создаётся только тогда, когда в админке администратор указал, что эту запись нужно отправить на стену вконтакте/ в группу. Для этого есть флаг post_vk.
Про сигналы не знала, обязательно изучу.
Спасибо за рекомендации и советы, буду знать и дальше развивать знания по python=)
Про сигналы не знала, обязательно изучу.
Спасибо за рекомендации и советы, буду знать и дальше развивать знания по python=)
0
Попробуйте несколько раз сохранить статью с флагом wal_post_vk равным True ;)
0
Ну логично запись постится Вконтакте)
0
Причем не один раз. Так и надо?
0
При каждом сохранении записи, если её надо отправить вконтакт, то она постится ровно один раз раз на стену админа и/или выбранной группы
0
В коде этого нет.
0
В функции use_vk, где и происходит обращение к API, в конце два условия как раз на проверку — отправлять запись на стену админу и отправлять ли запись в выбранные группы. Там метод vk.wall.post(**params) — как раз и отправляет запись, если нужно. Т.е. если выполняется условие, что запись нужно отправить на стену — выполняется этот метод API, один раз (метод вызывается один раз).
0
Я все это прекрасно вижу. Похоже вы не понимаете суть проблемы.
Сценарий:
1) пользователь добавляет статью, установил wall_post_vk в True, нажал сохранить. Статья отправилась вконтакт.
2) пользователь заметил ошибку в заголовке, исправил ее, нажал сохранить
3) заметил еще одну ошибку, исправил, нажал сохранить
Вопрос — сколько будет статей опубликовано?
Сценарий:
1) пользователь добавляет статью, установил wall_post_vk в True, нажал сохранить. Статья отправилась вконтакт.
2) пользователь заметил ошибку в заголовке, исправил ее, нажал сохранить
3) заметил еще одну ошибку, исправил, нажал сохранить
Вопрос — сколько будет статей опубликовано?
0
Хм, ну этого я не отрицаю, действительно, пока стоит wall_post_vk в True, статья будет поститься при каждом сохранении.
Просто это уже дальнейшее углубление в функциональность, такое и правда надо доработать… Только опять же, а если администратор именно так и хочет, что исправить заголовок и заново опубликовать запись вконтакте?.. Пока при быстром рассмотрении появляется идея удалять предыдущий пост и публиковать новый.
Просто это уже дальнейшее углубление в функциональность, такое и правда надо доработать… Только опять же, а если администратор именно так и хочет, что исправить заголовок и заново опубликовать запись вконтакте?.. Пока при быстром рассмотрении появляется идея удалять предыдущий пост и публиковать новый.
0
А почему не воспользовались готовыми наработками? например у github.com/ramusus есть полно репозиториев по теме.
Может вам пригодится github.com/ramusus/django-vkontakte-wall
Может вам пригодится github.com/ramusus/django-vkontakte-wall
0
Помимо советов выше, я бы добавил еще это. Вместо
Использовать это
Так более понятно, откуда тот или иной метод, который используется в коде.
И да. Почитайте про сигналы.
И вообще не понятно, зачем вот эта строчка
from umc.vk_response import *
Использовать это
from umc import vk_response
...
vk_response.some_method()
Так более понятно, откуда тот или иной метод, который используется в коде.
И да. Почитайте про сигналы.
И вообще не понятно, зачем вот эта строчка
groups = [g for g in self.group_vk.all()]
+1
строка
получает весь список групп, которые выбрал админ, куда надо отправить запись. Затем запись постится в каждую группу из этого списка.
groups = [g for g in self.group_vk.all()]
получает весь список групп, которые выбрал админ, куда надо отправить запись. Затем запись постится в каждую группу из этого списка.
0
Я полагаю, что вопрос был конкретно про решение с:
[g for g in self.group_vk.all()]
0
ОК. Тогда почитайте еще про models.ForeinKey(Model)
и про models.ManyToManyField(Model)
Тогда можно будет избавится от этой какахи) и получать делать так
и про models.ManyToManyField(Model)
Тогда можно будет избавится от этой какахи) и получать делать так
for group in self.group_vk.all()
0
Sign up to leave a comment.
Django + API Вконтакте: постим записи с вложениями, получение списка групп и записей