Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:涉及OneToOneField过滤器的相当复杂的查询?_Django_Django Models - Fatal编程技术网

Django:涉及OneToOneField过滤器的相当复杂的查询?

Django:涉及OneToOneField过滤器的相当复杂的查询?,django,django-models,Django,Django Models,有人能帮我解决一些相当复杂的Django问题吗 这些是我的模型: class County(models.Model): name = models.CharField(max_length=100) class Place: id = models.IntegerField(primary_key=True) county = models.ForeignKey(County) class Translation(models.Model): place =

有人能帮我解决一些相当复杂的Django问题吗

这些是我的模型:

class County(models.Model):
    name = models.CharField(max_length=100)
class Place:
    id = models.IntegerField(primary_key=True)
    county = models.ForeignKey(County) 
class Translation(models.Model):
    place = models.OneToOneField(Place,null=True)
    county = models.ForeignKey(County) # Have denormalised for ease, but could delete this.  
    text = models.TextField()
    user = models.ForeignKey(User, null=True, blank=True)
    user_ip = models.IPAddressField()
    created = models.DateField(auto_now_add=True)
如何运行以下查询

  • 找到具有多个翻译的用户,然后按翻译数量降序排列
  • 对于给定的县,查找没有关联翻译的地方
  • 对于给定的县,找到翻译最多的5个用户
我是否应该更改数据库设置以简化此操作

谢谢

User.objects.all().annotate(Count('translation')).order_by('-translation__count')

County.place_set.filter(translation=None)

User.objects.all().filter(
   translation__county__name="my_county"
).annotate(Count("translation")).order_by('-translation__count')[:5]