2016-08-30 77 views
0

我想了解如何通过函数传递表变量名称。所以例如让我说我有一个像下面的模型DJANGO - 通过表名称功能

Bio(models.Model): 
    name = models.CharField(max_length=200) 
    address = models.CharField(max_length=200) 
    country = models.CharField(max_length=200) 

现在我想能够通过函数传递表名。所以通常我会做一个

people = Bio.objects.all() 
for x in people: 
    print x.name 

我希望能够通过函数像这样通过“名称”变量...

def print_name(variable): 
    people = Bio.objects.all() 
    for x in people: 
     print x.variable 

print_name(name) 

我不知道到底是什么我应该正在调查。谢谢。

回答

0

你可以做

def print_name(variable): 
    everyone= Bio.objects.all() 
    for x in everyone: 
     print x.__getattribute__("name") 

print_name("name") 
0

这个怎么样...

print x.__dict__[variable] 

现在你可以通过这个变量作为字符串。希望这可以帮助。

+0

但'name'是一个类属性。它会出现在'__dict__'中吗? – RafaelC

+0

编辑完成后:是的,请尝试 –

+0

不,名称不是类属性。虽然'__dict__'仍然不是最好的方法。 –

0

尝试以下

def print_name(variable): 
    people = Bio.objects.all() 
    for x in people: 
     print getattr(x, variable) 

print_name(name) 

可能是这样的帮助。