Django如何在get查询中使用变量?

时间:2013-10-09 13:17:43

标签: django django-models

class accounts(models.Model):
    twitterid = models.IntegerField()
    credit    = models.IntegerField()
    activate  = models.TextField()
    group     = models.TextField()
    ban       = models.TextField(blank=True)
    others    = models.TextField()
class group(models.Model):
    groupname        =  models.TextField()
    groupfollowers   = models.IntegerField()


userid = request.session['userid']
juser = accounts.objects.get(twitterid=int(userid))
jgrp = group.objects.get(groupname=juser.group)

如果我使用jgrp = group.objects.get(groupname =“beginners”)此代码正在运行但不接受变量? DoesNotExist:组匹配查询不存在。

3 个答案:

答案 0 :(得分:1)

jgrp = group.objects.get(groupname = juser.group)

此代码完全有效。问题是,您的account.group值没有相应的组对象。

我还认为您的数据模型对于关系数据库并不是非常理想。我认为您应该有一个从您的帐户模型到组模型的外键,因此您可以使用juser.group作为@knapo建议。

答案 1 :(得分:0)

group是一个对象,您需要该组的名称。所以=juser.group.name

答案 2 :(得分:0)

我认为您需要做的就是用这个替换最后一行:

jgrp = juser.group