django在视图中访问类变量

时间:2010-06-04 09:33:43

标签: django

我想制作通知功能,我需要2种不同型号的字段。 我怎样才能访问这些字段? 在我的通知视图中我写了这个

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

其中last_login属于模型类User,而date_follow属于Follow 但它不是访问这些变量的正确和正确的方法。 我怎样才能访问它们?我需要比较两个日期,以实现自上次登录以来没有看到的通知。

谢谢!

1 个答案:

答案 0 :(得分:2)

通常,您希望加入两个表。在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自动创建的,是一个Manager,它返回外键的反向集。如果需要,可以在外键中使用“related_name”在此处选择其他名称。