【问题标题】:im trying to count model object but its not working我试图计算模型对象但它不工作
【发布时间】:2021-06-04 22:35:40
【问题描述】:

我正在尝试使用 Django 计算模型对象,但它不起作用,它不显示任何内容,这是 HTML 代码,我尝试了 .all.count 和 .count 但两者都没有显示任何内容

<div class="card">
        <div> <h3>Followers: {{profiles.follower.all.count}}</h3> </div>
        <div> <h3>Followings: {{profiles.following.count}}</h3> </div>
</div>

这就是python配置文件功能代码

def profile(request, username):
    user = get_object_or_404(User, username=username)
    user_posts= post.objects.filter(user=user)
    profiles = Userprofile.objects.filter(user=user)
    context = {
        'user_posts':user_posts,
        'profiles': profiles
    }
    return render(request, "network/profile.html", context)

**我的模型**

class User(AbstractUser):
    pass

class post(models.Model):
    user = models.ForeignKey('User', on_delete=models.CASCADE, related_name='maker')
    text = models.CharField(max_length=255)
    date = models.DateTimeField(default=datetime.now())
    likes = models.ManyToManyField('User', blank=True)

class Userprofile(models.Model):
    user = models.ForeignKey('User', on_delete=models.CASCADE, related_name='profile')
    follower = models.ManyToManyField('User', blank=True, related_name='follower')
    following = models.ManyToManyField('User', blank=True, related_name='following')

【问题讨论】:

  • 你能提供所有必要的模型吗
  • 我做到了,仅此而已

标签: python html django django-models django-views


【解决方案1】:

在你的views.py中添加.first()

def profile(request, username):
    ....
    user_posts= post.objects.filter(user=user).first()
    profiles = Userprofile.objects.filter(user=user).first()
    ......

【讨论】:

  • 过滤器是返回 QuerySet[]。 get_object_or_404 是返回实例,因此,如果您不使用 .first(),您可以在 .html 中使用 {{ % for in % }}。
猜你喜欢
  • 2020-12-22
  • 2021-03-19
  • 1970-01-01
  • 2011-05-27
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
相关资源
最近更新 更多