使用SQL调用选择的显示值

时间:2012-03-02 22:36:46

标签: sql django

我想为使用CharField(choices=())的Django字段编写SQL,并且显示值显示在SQL而不是调用值中。知道怎么做吗?它类似于get_FOO_display()

为了参考,这是我的模型:

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)
    """

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

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

另外,避免使用原始SQL。如果你真的需要它 - 总是使用参数化查询

connection.cursor()。execute('sql with%s params',[params])