#python #django #forms #algorithm #django-models
#python #django #формы #алгоритм #django-модели
Вопрос:
Я создал веб-приложение, которое состоит из двух категорий пользователей (скажем, A и B), и есть общая панель, на которой они оба могут что-то публиковать. Теперь, если пользователю (Джону) из категории A предлагается, что его наилучшим соответствием является person (wick) из категории B с помощью карточки django, как я могу создать что-то, что уведомляет их обоих.
Предположим, ДЖОНУ нравится то, что предлагает WICK, и на карточке WICK есть кнопка book, которую он видит на карточке WICK (мини-профиль). Теперь я хочу уведомить Wick о том, что ДЖОН заинтересован в вас, когда ДЖОН нажимает на кнопку «Заказать».
пример данных
Производитель
M_ID From To M_Type T_Type T_Length T_Weight #Trucks
JOHN A B Boxes Open 12-Tyre 22 3
BLAKE C D Cylinders Trailer HIGH 23 2
GREG G H Scrap Open 14-Tyre 25 5
Транспортер
T_ID From To T_Type T_Length T_Weight #Trucks Price
WICK A B Open 12-Tyre 22 5 1500
PATEL G H Open 14-Tyre 25 10 1200
NICK A B Open 12-Tyre 22 7 1900
Алгоритм возвращает данные в этом формате
Manufacturer Best Match Second Best
JOHN WICK NICK
GREG PATEL -
Я могу показать ДЖОНУ, что его лучшие соответствия — это WICK и NICK (и когда он нажимает на них, ему будет показан их мини-профиль с опцией BOOK, но что мне делать дальше, чтобы что-то произошло (предупредить WICK / NICK), когда он нажимает на кнопку book??
Ответ №1:
Это довольно широкий вопрос, но здесь идет.
ДЖОН нажимает, и обработка запроса либо выполнит что-то немедленно (например, отправит электронное письмо НИКУ), либо сохранит что-то в базе данных, что будет доведено до сведения НИКА при следующем взаимодействии НИКА с приложением. Возможно, таблица уведомлений с внешними ключами для ДЖОНА (notifier), НИКА (notifiee —yuk ) и связанных с ними данных.
Что-то подобное последнему я увижу вверху страницы stackoverflow, когда вы проголосуете за этот пост или добавите комментарий. Если я не вернусь к stackoverflow в течение месяца, я увижу это тогда, или вы можете указать дату истечения срока действия того, что вы храните, чтобы по истечении этого периода времени уведомление считалось устаревшим и удалялось на лету, и НИК никогда не узнал об этом.
Я ожидаю, что вы сможете найти где-нибудь что-то, написанное кем-то другим для реализации большей части этого. Вероятно, это форма промежуточного программного обеспечения, если его нужно проверять буквально при каждом взаимодействии, а не только при входе в систему. Извините, я не могу предложить никаких указаний.
Ответ №2:
Вы не должны разговаривать в таблицах SQL, когда на самом деле вы работаете на уровне абстракции Django ORM.
Все, что вам нужно, это поле ManyToMany. Вы добавите это поле m2m и покажете новые, для которых было сделано пользовательское предложение (возможно, объединить производителя и транспортера в одну модель (таблицу), чтобы не дублировать эту функциональность).
Вместо использования auto m2m я предлагаю вам использовать сквозную модель для добавления дополнительного поля, такого как Boolean has_been_seen
. Или вы можете предположить, что экземпляр был замечен, если пользователь last_activity
больше даты-времени, в которое был создан экземпляр.