2016-08-30 43 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) 

可能是這樣的幫助。