Skip to main content
 首页 » 编程设计

python之使用 Django 计算和过滤数据库中的对象

2025年05月04日26JustinYoung

我正在努力弄清楚如何遵循对象的关系和计数字段。

在我的 Django 站点中,我有一个配置文件模型:

user = models.ForeignKey(User, unique=True) 
name = models.CharField(_('name'), null=True, blank=True) 
about = models.TextField(_('about'), null=True, blank=True) 
location = models.CharField(_('location'), null=True, blank=True) 
website = models.URLField(_('website'), null=True, blank=True) 

我的理解是,这是使用用户名作为外键。

我希望能够计算并显示我的用户填写的完整个人资料的数量,以及具有特定“元素/字段”的个人资料的数量? (姓名)* 已填写。我试过:

Profile.objects.all().count() 

这给了我与用户相同数量的配置文件,我猜这是因为每个用户都存在配置文件模型,即使它是空白的。

我不确定如何计算已完成这些字段之一的配置文件,我也不确定如何计算已完成的“名称”字段的数量。

我试过:

Profile.objects.all().name.count() 

Django 在 queryset api 上有一些很好的文档, 但它目前有点超出我的头脑

  • 请原谅我使用了不正确的术语。

请您参考如下方法:

你应该能够让他们使用:

Profile.objects.filter(name__isnull=False)