在类之间链接django模型属性

时间:2016-05-18 12:58:04

标签: python django django-models

如果我有一个带有

的django模型
class Comment():
   created = models.ForeignKey(User, on_delete=models.DO_NOTHING, related_name='comment_created')

如何根据“created”引用的用户设置Comment类的属性。

具体而言,我希望通过惯用方式引用(在评论实例中)是否创建评论的用户“is_staff”。

2 个答案:

答案 0 :(得分:1)

class Comment(models.Model):
  created = models.ForeignKey(User, on_delete=models.DO_NOTHING, related_name='comment_created')

  @property
  def creator_is_staff(self):
    return self.created.is_staff

my_user = User.objects.get()  # Get some user
my_comment = Comment(created=my_user)
my_comment.creator_is_staff  # Returns either True or False

答案 1 :(得分:1)

IMO,以这种方式创建Comment模型类的方法可能有效:

class Comment(models.Model):
    # some fields...

    def created_user_is_staff(self):
        return self.created.is_staff()

你可以在some.py

中使用这个方法
# comment is an instance of the Comment class
    if comment.created_user_is_staff():
# do something...

或在模板中

{% if comment.created_user_is_staff %}
    render something...
{% endif %}
相关问题