2016-08-30 5 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

Try следующий

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

print_name(name) 

Может быть, это поможет.

Смежные вопросы