如何计算外键项,尤其是用 Django 的用户模型创建的 'author'?
How does one count a foreign key item, esp 'author' created with Django's User model?
需要帮助更好地掌握 1) 在 Django 中访问和计算外键项以及 2) 计算通过 Django 的内置用户创建的外键项:
#1)
建议使用 Django 的 annotate
函数:例如。 questions = Question.objects.annotate(number_of_answers=Count('answer'))
(问题是要回答的外键项)。但是我不清楚这条线属于哪里(在示例、问题或答案的情况下),或者应用程序的哪一部分-models.py 或 views.py。我在 models.py 和 views.py
中都进行了测试
这是我的模型(这里只有基本的行):
class Post(models.Model):
post = models.TextField(max_length=1000)
author = models.ForeignKey(User, related_name="author", on_delete=models.CASCADE)
class Comment(models.Model):
comment = models.TextField(max_length=1000)
commenter = models.ForeignKey(User, on_delete=models.CASCADE)
post_connected = models.ForeignKey(Post, related_name='posts', on_delete=models.CASCADE, default=None, null=True)
#2) 如何计算使用 Django 的内置模型 User 创建的外键项?
我应该先创建一个名为“作者”的模型吗?
我想告诉你一些关于 related_name
的事情:
related_name
帮助您访问另一个模型的对象,例如
class Post(models.Model):
post = models.TextField(max_length=1000)
author = models.ForeignKey(User, related_name="posts", on_delete=models.CASCADE)
class Comment(models.Model):
comment = models.TextField(max_length=1000)
commenter = models.ForeignKey(User, on_delete=models.CASCADE)
post_connected = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE, default=None, null=True)
用modelobject.related_name.all()
获取本例中另一个模型的对象userobject.posts.all()
你可以得到所有post与用户对象相关的。
并且用 post.comments.all()
可以获得与 post.
相关的所有评论
需要帮助更好地掌握 1) 在 Django 中访问和计算外键项以及 2) 计算通过 Django 的内置用户创建的外键项:
#1)
annotate
函数:例如。 questions = Question.objects.annotate(number_of_answers=Count('answer'))
(问题是要回答的外键项)。但是我不清楚这条线属于哪里(在示例、问题或答案的情况下),或者应用程序的哪一部分-models.py 或 views.py。我在 models.py 和 views.py
这是我的模型(这里只有基本的行):
class Post(models.Model):
post = models.TextField(max_length=1000)
author = models.ForeignKey(User, related_name="author", on_delete=models.CASCADE)
class Comment(models.Model):
comment = models.TextField(max_length=1000)
commenter = models.ForeignKey(User, on_delete=models.CASCADE)
post_connected = models.ForeignKey(Post, related_name='posts', on_delete=models.CASCADE, default=None, null=True)
#2) 如何计算使用 Django 的内置模型 User 创建的外键项? 我应该先创建一个名为“作者”的模型吗?
我想告诉你一些关于 related_name
的事情:
related_name
帮助您访问另一个模型的对象,例如
class Post(models.Model):
post = models.TextField(max_length=1000)
author = models.ForeignKey(User, related_name="posts", on_delete=models.CASCADE)
class Comment(models.Model):
comment = models.TextField(max_length=1000)
commenter = models.ForeignKey(User, on_delete=models.CASCADE)
post_connected = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE, default=None, null=True)
用modelobject.related_name.all()
获取本例中另一个模型的对象userobject.posts.all()
你可以得到所有post与用户对象相关的。
并且用 post.comments.all()
可以获得与 post.