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

を行うだろう探している。ありがとう。これについて...

print x.__dict__[variable] 

今、あなたは文字列としてこの変数を渡すことができますどのように

答えて

0

あなたは

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

print_name(name) 

はこの助けとなる可能性があり、次の

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

print_name("name") 
0

。お役に立てれば。

+0

しかし、 'name'はクラス属性です。 '__dict__'に表示されますか? – RafaelC

+0

編集後:はい、試してみてください –

+0

いいえ、名前はクラス属性ではありません。しかし、 '__dict__'はまだそれを実行する最良の方法ではありません。 –

0

試しを行うことができます。

関連する問題