计算 Django 数据库中的行数:AttributeError
Count the number of rows in a Django database : AttributeError
我有 Django 模型创建的数据库,其中 idRecruteur 是 table Offre 的字段。
我需要计算 idRecruteur = 1 的行数。
这是我的 "Offre" table 代码:
@python_2_unicode_compatible
class Offre(models.Model):
titre = models.CharField(max_length=100)
dateAjout = models.DateField(auto_now=False, auto_now_add=False)
nature = models.CharField(max_length=50)
duree = models.CharField(max_length=50)
niveau = models.CharField(max_length=50)
description = models.CharField(max_length=50)
salaire = models.FloatField(null=True, blank=True)
idRecruteur = models.ForeignKey(Recruteur, related_name="Offre", on_delete=models.CASCADE)
def __str__(self):
return "Offre: {}".format(self.title)
这是我的查询集:
class OffresparEntrepriseViewSet(ModelViewSet):
queryset = Offre.objects.filter(idRecruteur=1).count()
serializer_class = OffreSerializer
我收到错误“AttributeError:'int' 对象没有属性 'model'”
知道我做错了什么吗?
ViewSet 的queryset
属性应该是QuerySet
对象,但是count()
returns 整数。您需要使用 queryset = Offre.objects.filter(idRecruteur=1)
作为视图集查询集,并将计数功能移动到另一个级别。例如使用 list_route
:
class OffresparEntrepriseViewSet(ModelViewSet):
queryset = Offre.objects.filter(idRecruteur=1)
serializer_class = OffreSerializer
@list_route()
def count(self, request):
count = self.queryset.count()
return Response({'count': count})
现在您可以通过访问 viewset_url/count
url.
来获取计数
我有 Django 模型创建的数据库,其中 idRecruteur 是 table Offre 的字段。
我需要计算 idRecruteur = 1 的行数。
这是我的 "Offre" table 代码:
@python_2_unicode_compatible
class Offre(models.Model):
titre = models.CharField(max_length=100)
dateAjout = models.DateField(auto_now=False, auto_now_add=False)
nature = models.CharField(max_length=50)
duree = models.CharField(max_length=50)
niveau = models.CharField(max_length=50)
description = models.CharField(max_length=50)
salaire = models.FloatField(null=True, blank=True)
idRecruteur = models.ForeignKey(Recruteur, related_name="Offre", on_delete=models.CASCADE)
def __str__(self):
return "Offre: {}".format(self.title)
这是我的查询集:
class OffresparEntrepriseViewSet(ModelViewSet):
queryset = Offre.objects.filter(idRecruteur=1).count()
serializer_class = OffreSerializer
我收到错误“AttributeError:'int' 对象没有属性 'model'”
知道我做错了什么吗?
ViewSet 的queryset
属性应该是QuerySet
对象,但是count()
returns 整数。您需要使用 queryset = Offre.objects.filter(idRecruteur=1)
作为视图集查询集,并将计数功能移动到另一个级别。例如使用 list_route
:
class OffresparEntrepriseViewSet(ModelViewSet):
queryset = Offre.objects.filter(idRecruteur=1)
serializer_class = OffreSerializer
@list_route()
def count(self, request):
count = self.queryset.count()
return Response({'count': count})
现在您可以通过访问 viewset_url/count
url.