
Dan
27.03.2018
17:05:10
джанга сма его добавит

Konstantin
27.03.2018
17:07:00
хм, и он будет называться id?

Denis
27.03.2018
17:07:15

Google

Konstantin
27.03.2018
17:07:26
А, ок, спасибо!

Dan
27.03.2018
17:07:30

Сергей
27.03.2018
17:10:09

Ромашов
27.03.2018
17:26:07
Добрый вечер, а подскажите пожалуйста в какую сторону сторону смотреть в разработке системы нотификаций как в социальных сетях, то есть при определённом действии, когда кто-то отвечает на твой комментарий, чтобы у тебя появлялась нотификация, что вот на твой коментарий ответили?

Artur
27.03.2018
17:41:41

Ромашов
27.03.2018
17:51:00
ws, long polling
Я не совсем уверен, что это то, что нужно. Я имел в виду скорее модель нотификаций и как она должна работать, а это я так понял для общения клиента и сервера?
В моем случае я сначала хочу просто понять, как должны создаваться нотификации на сервере, то есть это какая-то модель должна быть, но не могу понять какая, если я хочу нотифицировать о разных событиях, то есть коментарий, лайк, что угодно, вот.

Dan
27.03.2018
17:51:03

Ромашов
27.03.2018
17:51:59

Dan
27.03.2018
17:52:39
Тогда думаю вебсокеты

Ромашов
27.03.2018
17:59:33
Тогда думаю вебсокеты
Я в ответе Артуру неправильно понял что такое вебсокет? Просто я пишу сервер для мобильных приложений и как я вижу флоу, это я при определенном событие, создаю нотификацию, скажем, с пользователем, оставившим коментарий, коментарием и тд, там допустим добавляю поле seen = False, и создаю ендпоинт для просмотра ещё неувиденных нотификаций, или не так?


Artur
27.03.2018
18:01:25
Я не совсем уверен, что это то, что нужно. Я имел в виду скорее модель нотификаций и как она должна работать, а это я так понял для общения клиента и сервера?
В моем случае я сначала хочу просто понять, как должны создаваться нотификации на сервере, то есть это какая-то модель должна быть, но не могу понять какая, если я хочу нотифицировать о разных событиях, то есть коментарий, лайк, что угодно, вот.
Нотификации - это же и есть вопрос взаимодействия клиента с сервером в первую очередь
Записывай их в какую-нибудь таблицу, и при появлении новой - посылай сигнал клиенту о том, что появилась новая запись (как раз при помощи ws или long polling) - вот тебе и вся модель


Alex
27.03.2018
18:03:46
Я в ответе Артуру неправильно понял что такое вебсокет? Просто я пишу сервер для мобильных приложений и как я вижу флоу, это я при определенном событие, создаю нотификацию, скажем, с пользователем, оставившим коментарий, коментарием и тд, там допустим добавляю поле seen = False, и создаю ендпоинт для просмотра ещё неувиденных нотификаций, или не так?
веб сокет - это персистентное соединение, которое устанавливается поверх http. отправляется серверу upgrade. дальше уже чистая бинарка которую можно получать прями в любимый клиентский js


Ромашов
27.03.2018
18:03:58
Нотификации - это же и есть вопрос взаимодействия клиента с сервером в первую очередь
Записывай их в какую-нибудь таблицу, и при появлении новой - посылай сигнал клиенту о том, что появилась новая запись (как раз при помощи ws или long polling) - вот тебе и вся модель
Ну я просто слово неудачное выбрал, нотификации я планировал сделать через Firebase (или плохой вариант?)
А тут я имел в виду, что если я хочу нотифицировать не только о том, что пользователю ответили на коментарий, а и поставили лайк, например. И тогда как модель создать, если в ней могут быть разные сущности, то ли коментария, то лайка, то ещё чего-то, вот.

Google

Ромашов
27.03.2018
18:05:11

VSKut
27.03.2018
18:12:38
как можно повесить pre_save или что-то в этом роде на проверку количества связей many2many? Нужно сделать чтобы в один момент модель А могла иметь максимум 3 связи с моделями Б.
На модель Б таких ограничений нет

Fedor
27.03.2018
18:37:09

Anton
27.03.2018
19:58:56
Как "насильно" выполнить миграции, пропуская уже созданные таблицы?

amureki
27.03.2018
20:01:39
google django fake migrations

Anton
27.03.2018
20:24:52
Не надо меня отправлять в гугл, я активный пользователь Интернета, прекрасно умею кодить на мониторе и включать процессор, так что знаю о существовании этого сайта.
Проект и при --fake шлет подальше. Вообще, все началось вот с этой ошибки:
ValueError: The field main_app.ApartmentTechinalModel.parent_apartment was declared with a lazy reference to 'main_app.apartmentmodel', but app 'main_app' doesn't provide model 'apartmentmodel'.
Гуглю, вижу ответы, но никогда не писал сам миграции (а я так понял, это и требуется - вручную написать и пофиксить)

amureki
27.03.2018
20:36:43
А у тебя не достаточно вводных для хорошего ответа
Что за проект, есть ли там уже миграции, есть ли там дб и прочее

Dave
27.03.2018
20:41:01
скорее всего кто-то удалил модель раньше чем надо
ну и да, миграции миграциям рознь, можно и самому на питоне их писать, джанго тут может быть и не нужна
лучше расскажите мне, как пользуясь pylint решать вот эту проблему https://github.com/PyCQA/pylint-django/issues/106
как бы простое решение - задавать модель явно, но иногда приходится делать референс строкой. и вот тут все плохо
есть ли какие-то способы делать можели так чтоб всегда можно было использовать класс вместо строки

DEFACE
28.03.2018
03:44:23
кто знает какие нибудь црмки на джанго?

Dan
28.03.2018
03:47:24

DEFACE
28.03.2018
03:53:04
crm
но я ща пробегу по этому ресурсу
ща поищю
https://github.com/caktus/django-timepiece/

Google

Dan
28.03.2018
03:56:36
на сколько я понимаю crm достаточно узконнаправленый софт под конкретную компанию
чаще всего

DEFACE
28.03.2018
03:57:32
чаще всего
да я понимаю, ищю проект который за базу взять можно
чаще всего
я даже не надеюсь что попадет в точку...если не найду придется дальше писать для редмайн

Dan
28.03.2018
04:02:17
а сейчас на редмайне ?
может такой вариант
https://github.com/taigaio/

DEFACE
28.03.2018
04:06:30

Denis
28.03.2018
05:34:15
Чё-та закипел((( DRF, ViewSet. на view_detail нужно выводить post_form из совершенно другой модели. Куда рыть?


Евгений
28.03.2018
06:12:05
Здравствуйте, товарищи! Столкнулся с забором: у полей имеющих какое-либо значение - оно меняется на ура, а если стоит null - то нифига не меняется.
models
hard_cap = models.CharField(
'hard cap',
max_length=25,
blank=True,
null=True)
parser
hard_cap = inner_soup.find(class_="detail-title", text="Hard Cap")
if hard_cap is not None:
hard_cap = hard_cap.next_sibling.get_text()
ico = ICO.objects.filter(name=name)
if ico[0].hard_cap != hard_cap and hard_cap is not None:
print("Before ico[0].hard_cap: " + str(ico[0].hard_cap) + " != hard_cap: " + str(hard_cap))
ico[0].hard_cap = hard_cap
print("After change ico[0].hard_cap: " + str(ico[0].hard_cap))
ico[0].save()
print("After save Hard Cap was changed to " + str(ico[0].hard_cap))
вывод:
Before ico[0].hard_cap: None != hard_cap: 35,000,000 USD
After change ico[0].hard_cap: None
After save Hard Cap was changed to None
How is it possible? ЧЯДНТ?


Bogdan
28.03.2018
06:23:38
ico=ico[0] и дальше с ним работай.
Иначе оно при каждом обращении создаёт новый инстанс объекта из базы

Sarvarbek
28.03.2018
06:26:22
здраствуйте я не могу запускат проект. ошибка Error 111 connecting to localhost:6379. Connection refused. помогите я не могу решит это ошибку
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
'SOCKET_TIMEOUT': 5,
'IGNORE_EXCEPTIONS': False,
'CONNECTION_POOL_KWARGS': {'max_connections': 200},
'PARSER_CLASS': 'redis.connection.HiredisParser',
}
}
}

Dan
28.03.2018
06:31:50

Sarvarbek
28.03.2018
06:32:32

Dan
28.03.2018
06:33:41
https://redis.io/topics/quickstart
redis-cli ping

Sarvarbek
28.03.2018
06:35:01
спасибо большое работал
?

Google

Dan
28.03.2018
06:35:21
джанга то завелась ?

Sarvarbek
28.03.2018
06:38:37
нет на джанго не работает через терминал на джанго Error running 'manage': Cannot start process, the working directory '/media/corleone/A0CCB27CCCB24BF2/Users/CORLEONE/public_html/bonusmarket_project/bonusmarket_project' does not exist

Dan
28.03.2018
06:39:55
а ты как запускаешь ?

Sarvarbek
28.03.2018
06:40:26
через терминал

Dan
28.03.2018
06:41:06
ну я больше спрашивал какой командой

Sarvarbek
28.03.2018
06:41:48
python manage.py runserver

Dan
28.03.2018
06:42:25
у тебя bonusmarket_project нет
по какой то пичине
и скорее он включен в INSTALLED_APPS

Sarvarbek
28.03.2018
06:44:46
я скачал проект от сервера public_html я думал это проект

Сергей
28.03.2018
06:47:07

Teatimeswithyou
28.03.2018
06:47:29
Есть одна модель. В админку при изменении записи(/app/model/1/change) нужно добавить поле и кнопку, которая будет выполнять функцию по этому полю. С полем разобрался, но совсем не могу нагуглить как добавить кнопку только к этой модели. Такое вообще возможно?

amureki
28.03.2018
06:48:10

Евгений
28.03.2018
06:49:08

Teatimeswithyou
28.03.2018
06:52:01

amureki
28.03.2018
06:53:38

Denis
28.03.2018
06:56:46
Не знаю на сколько правильно, но делал так: добавил нужный сериализатор атрибутом к исходному, поставил все поля исходного в рид онли, убрал вывод в to_representation и получил, что хотел. Первый раз работаю с DRF. Пока кажется неповоротливым)))

Eugene
28.03.2018
08:52:17
Товарищи, а когда используем first() и last() оно по какому параметру делает order?

Николай
28.03.2018
08:52:32
по какому идёт в результате запроса
если перед этим сделаешь ордер - то будет по ордеру

Google

Eugene
28.03.2018
08:53:12
https://docs.djangoproject.com/en/2.0/topics/db/aggregation/#aggregation-ordering-interaction по class Meta ordering )

Николай
28.03.2018
08:53:53
Забавно, даже такое есть

Artem
28.03.2018
08:55:41

Eugene
28.03.2018
08:56:11
If the QuerySet has no ordering defined, then the queryset is automatically ordered by the primary key.
https://docs.djangoproject.com/en/2.0/ref/models/querysets/#django.db.models.query.QuerySet.first
? чот оно у меня по дефолту не хочет по pk сортировать
мб из-за django mptt model

Николай
28.03.2018
08:57:46
это ты решил тут всех проверить?
Товарищи, а когда используем first() и last() оно по какому параметру делает order?

serbernar
28.03.2018
08:58:13
для мптт есть отдельная мета
и отдельный ордеринг

Eugene
28.03.2018
08:58:50

Николай
28.03.2018
08:59:05
Ааа