Как показать только последнее сообщение от локального пользователя? - PullRequest
0 голосов
/ 11 апреля 2019

Я позвонил в последнее сообщение, но хочу, чтобы показанное сообщение было связано с тем, кто использует веб-сайт

calculation = [Math.objects.latest('date')]
calc = getattr([Math.objects.latest('date')][0], 'calculation')
class Math(models.Model):
calculation = models.CharField(max_length=10000)
date = models.DateTimeField(auto_now=True)

class Meta:
    get_latest_by = 'date'

При переключении компьютера и повторном запуске сервера последнее сообщение все еще было там. Это происходит потому, что python manage.py runserver не может определить IP?

Моя самая большая проблема будет, если при развертывании будет отображаться последнее опубликованное сообщение.

Для контекста я буду использовать этот сайт для вычислений, поэтому их необходимо персонализировать.

1 Ответ

1 голос
/ 11 апреля 2019

Атрибут запроса django имеет атрибут user, который можно вызвать с помощью request.user.Так что, если ваша Math модель выглядит как

class Math(models.Model):
  calculation = models.DecimalField()
  user = models.ForeignKey(User, related_name='calculations')
  date = models.DateTimeField()

Где User относится к модели auth.User Джанго.Теперь вы можете подойти к этой проблеме двумя способами.Первый - сначала отфильтровать по пользователю, а затем получить последний, например

calculation = Math.objects.filter(user=request.user).latest('date')[0].calculation

Другой вызовет связанное имя напрямую из request.user, как

calculations = request.user.calculations.latest('date')[0].calculation 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...