Django доступ к переменным класса в представлении - PullRequest
0 голосов
/ 04 июня 2010

Я хочу сделать функцию уведомления, и мне нужны поля из 2 разных моделей. как я могу получить доступ к этим полям? в моем уведомлении я написал это

  data = Notices.objects.filter(last_login<date_follow)

где last_login принадлежит классу модели User, а date_follow следует но это не правильный и правильный способ доступа к этим переменным. Как я могу получить к ним доступ? Мне нужно сравнить две даты реализации уведомлений, которые один не видел со времени своего последнего входа в систему.

Спасибо!

1 Ответ

2 голосов
/ 04 июня 2010

В общем, вы хотите объединить две таблицы. В Django это лучше всего возможно, если у вас есть внешний ключ от одной таблицы к другой. Вы можете хотеть / иметь свои модели как это:

class User(models.Model):
  last_login = ...

class Notice(models.Model):
  ...

class Follow(models.Model):
  user = models.ForeignKey(User)
  notice = models.ForeignKey(Notice)
  date_follow = ...

и ваш запрос

Notice.objects.filter(follow_set__date_follow__gt = follow_set__user__last_login)

Я не проверял этот запрос, но здесь 'follow_set' автоматически создается Django и является Менеджером, который возвращает набор обратных для внешнего ключа. Если вы хотите, вы можете использовать «related_name» со своим внешним ключом, чтобы выбрать другое имя здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...