假设我有一个定义为此类型的模型
class BlogPost(Models.Model):
""" Defines a blog model """
blog = models.TextField()
blog_id = models.AutoField(primary_key=True)
author = models.CharField()
我想定义一些方法来访问某个作者的博客帖子,比如'john doe'。我如何定义访问john doe拥有的所有博客帖子的方法,然后将他们的blog_id放入python列表?
def selectPostsByUser(user):
""" Implement function to select all object """
注意:请忽略数据字段的不良表示。它们纯粹是任意的,我只是用名字来消除示例中的含糊不清。
答案 0 :(得分:1)
我希望您的模型中有用户的外键:
def selectPostsByUser(user):
return self.objects.filter(user__id=user.id).values_list('blog_id', flat=True)
如果要传递给selectPostsByUser
方法的用户是作者(和用户模型对象)。然后你应该在你的模型中将作者作为ForiegnKey字段。
答案 1 :(得分:1)
models.py
class BlogPost(Models.Model):
""" Defines a blog model """
blog = models.TextField()
blog_id = models.AutoField(primary_key=True)
author = models.CharField()
@classmethod
def selectPostsByUser(cls, user):
return cls.objects.filter(author=user)
views.py
user = "john doe"
blogs = BlogPost.selectPostsByUser(user)
答案 2 :(得分:0)
直接回答这个问题,让我们说作者实际上是一个'CharField'。您可以执行以下操作从“jane doe”获取所有博客帖子,然后将所有ID放入列表....
posts = BlogPost.objects.filter(author='jane doe')
list = []
for items in posts:
lists.append(items.blog_id)