2017-12-02 156 views
0

我的Django模型是这样的:Django的双参数过滤查询与外键

class User(models.Model): 
    userid = models.CharField(max_length=26,unique=True) 
    #some more fields that are currently not relevant 

class Followers(models.Model): 
    user = models.ForeignKey('User',related_name='usr') 
    coins = models.IntegerField() 
    followers = models.CharField(max_length=26, null=True, blank=True) 

我现在想做成过滤查询我的追随者选择表中的每个条目,用户有ID x和追随者ID Ÿ(我期望从查询中获得一个结果)。

形象化什么我都试过,知道将无法正常工作是这样的:

queryfilter = Followers.object.filter(followers=fid, user=uid) 

这:

queryfilter = Followers.object.filter(followers=fid, user__userid=uid) 

最后,我想访问硬币:

c = queryfilter.coins 

有可能我不能用一个单一的查询来做它,并且需要两个,因为我正在尝试做一个过滤器que ry涉及两张桌子。

回答

0

首先,我修改了'追随者'模型(用于命名约定)。 models.py

class Follower(models.Model): 
    user = models.ForeignKey('User', related_name='followers') 
    coins = models.IntegerField() 
    key = models.CharField(max_length=26, null=True, blank=True) 

你的查询集应该是..

views.py

#coins 
coins = Follower.objects.filter(key=fid, user__userid=uid).get().coins