我有以下領域的用戶模型..標註在同一模型給人意想不到的結果
class User(models.Model):
user_id = models.CharField(max_length=40,unique=True)
user_name = models.CharField(max_length=40)
user_email = models.EmailField()
user_city = models.CharField(max_length=40)
class Meta:
ordering = ['user_id']
verbose_name = 'User MetaData'
verbose_name_plural = 'Users MetaData'
def __unicode__(self):
return self.user_id
現在我想篩選前10個城市的前10個城市在城市用戶數的用戶即列表。我用下面的語法,但始終我得到city_count = 1 ..
User.objects.annotate(city_count=models.Count('user_city')) .order_by('-city_count'))[:10]
我也嘗試下面的語法,但相同的結果...
User.objects.values('user_city').annotate(city_count=models.Count('user_id')) .order_by('-city_count'))[:10]
我哪裏做錯了?
請問,如果你使用第二個語法,但算的,而不是 'USER_ID' user_city「工作? –
如果您以@DanielRoseman建議的方式將'user_id'替換爲'user_city',那麼您的最後一個示例工作正常。 – f43d65
@DanielRoseman我試過,但沒有工作.. – Naresh