2012-06-14 27 views
0

如果下面的代码不符合体面的程序员,请道歉,因为我根本不涉及计算机,但是我想自动化一个单调乏味的程序过程,我发现Django只是有趣的..而对于我的生活,我不能只是简单地找到答案。Django Howto过滤掉属于某个特定国家的用户,而不是所有用户

具有以下models.py我想筛选出属于某个国家,而不是所有的用户的用户,并保存在一个sqlite3的分贝

class Country(models.Model): 
    name = models.CharField(max_length=50) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     verbose_name = 'Countries Uploaded' 

class Users(models.Model): 
    name = models.CharField(max_length=50) 
    cUsers = models.ForeignKey(Country) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     verbose_name = 'Users on a country' 

class GoalsinCountry(models.Model): 
    Country = models.ForeignKey(VideoTopic) 
    'HERE I WOULD LIKE TO SEE THE USERS IN EACH COUNTRY' 
    name = models.CharField(max_length=50) 
    descr = models.TextField(blank=True, null=True) 

    def __unicode__(self): 
     return self.name 
    class Meta: 
     verbose_name = 'Goals Topic' 

此信息请问这是可以做到的与Django? 有没有工作的例子?

回答

3

尝试:

Users.objects.exclude(cUsers__name='Some Country') 

参见:https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

+1

感谢@ zubair89。出于某种疯狂的原因,我在考虑反向关系。需要更多的caffiene;) –

+0

class GoalsinCountry(models.Model): Country = models.ForeignKey(Country) gUser = models.ForeignKey(Users.objects.exclude(cUsers__name = Country.name)) name = models.CharField( MAX_LENGTH = 50) DESCR = models.TextField(空白=真,无效=真) 我正在 的AssertionError:ForeignKey的([,<用户:Spain1>])是无效的。 ForeignKey的第一个参数必须是模型,模型名称或字符串'self' 我将不得不做更多的Google搜索 - 感谢您指出正确的方向! – CCNA

+0

确保你的模型的'ForeignKey'字段设置为'Country',而不是'Country.objects.all()'。 –

相关问题