Django:涉及OneToOneField过滤器的相当复杂的查询?
有人能帮我解决一些相当复杂的Django问题吗 这些是我的模型: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 =
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]