lov3catch
Июнь 4, 2013 10:42:41
Доброго времени суток, господа.
Подскажите пожалуйста (в теории) как реализовать возможность передачи сообщений между пользователями.
Я так понимаю что в модели пользователя надо добавить два поля:
-Входящие сообщения
-Исходящие сообщения
Возможно у кого-то есть мысли по этому поводу? Прошу поделиться.
Заранее благодарен.
newca9h
Июнь 4, 2013 11:38:19
Здравствуйте! Можно реализовать модель с полями: from_user, to_user, text. Как видно из названий - это от кого, кому и текст сообщения. Таким образом, входящие, это те, где from_user отличается от текущего, а исходящие - это там, где from_user текущий юзер. Как-то так.
FishHook
Июнь 4, 2013 11:42:41
lov3catch
Июнь 4, 2013 12:34:08
Тоесть моя модель будет выглядеть приблизительно так:
class message(models.Model):
message_text = models.TextField(verbose_name="message", max_length=500)
message_from_user = models.Model("ТЕКУЩИЙ_ЮЗЕР")
message_to_user = models.ForeignKey("ПОЛУЧАТЕЛЬ")
Тогда возникает вопрос, как получить текущего юзера сессии?
FishHook
Июнь 4, 2013 12:46:44
lov3catch
Тогда возникает вопрос, как получить текущего юзера сессии?
request.user
lov3catch
Июнь 4, 2013 14:57:15
а в каком пакете находится request?
message_from_user = models.ForeignKey(request.user)
Пишет:
NameError: name ‘request’ is not defined
truporez
Июнь 4, 2013 15:25:57
это не пакет. request вам в вьюху приходит параметром.
lov3catch
Июнь 4, 2013 15:31:04
Как же тогда быть, если мне в модели надо получить текущего юзера?
(я наверное не совсем понимаю как работает приложение в django)
truporez
Июнь 4, 2013 15:40:15
при добавлении сообщения, во вьюхе, у вас уже будет доступ до request. а самой модели знать о request ну совсем незачем. кроме того, в ModelAdmin есть save_model.
lov3catch
Июнь 4, 2013 15:47:16
хорошо, в таком случае, что я должен указать в моделе, а именно в полях:
message_from_user = models.ForeignKey("ТЕКУЩИЙ_ЮЗЕР")
message_to_user = models.ForeignKey("ПОЛУЧАТЕЛЬ")
Подскажите, пожалуйста.