2012-03-02 2 views
0

CharField(choices=())を使用するDjangoフィールドのSQLを記述し、呼び出し値ではなくSQLに表示値を表示したい。どのようにこれを行うにはどのようなアイデア?これはget_FOO_display()に似ています。因みにSQLで選択肢を呼び出すには

は、ここに私のモデルです:

class Person(models.Model): 
    STUDENT_CHOICES=(
     (0,'None'), 
     (1,'UA Current LDP'), 
     (2,'UA LDP Alumni'), 
     (3,'MSU Current LDP'), 
     (4,'MSU LDP Alumni') 
    ) 
    ... 
    studentStatus=models.IntegerField(choices=STUDENT_CHOICES, verbose_name="Student Status", null=True, blank=True) 

そして、私のクエリ:事前に

def mailingListQuery(request): 
... 
if request.POST: 
    ... 
    sql = """ 
     ... 
     per."studentStatus" # Here's where I want to access the display value 
     left outer join person as per on (per.party_id = p.id) 
    """ 

ありがとう!また、

STUDENT_CHOICES=(
    ('None', 'None'), 
) 

生のSQLを使用しないよう:

+2

表示値がまさにそれである - 。表示値。これはデータベースに格納されていないため、SQLでアクセスすることはできません。 –

+0

なぜ表示値を使用しますか?私はそれが良いアプローチではないと思う – szaman

+0

@szaman私のユーザーは、人間が読めるCSVを引き出せるようにしたい。 – reK1NDLE

答えて

1

次のようなものを使用することができます。あなたが本当にそれを必要とする場合 - 常に

connection.cursor()パラメータ化クエリを使用して実行する( '%sのparamsはとSQL'、[のparams])

関連する問題