在ORM查询中使用变量作为字段

时间:2015-12-17 22:34:13

标签: python django python-3.x

我试图创建一个将URL解析为数据库中条目的应用程序。所以我有一个数据库,其中的行包含(' name',' date',' value')和一些条目,如(' Tom' ;,' 27/12 / 2015',' 5')。我希望我的应用以下列方式解析网址

http://.../app/name/Tom
http://.../app/value/5

在第一种情况下,它应该搜索名为' name'然后找到一个条目,其中该行等于字符串' Tom'等等。所以这是urls.py代码:

    url(r'(?P<pole>[name|date|value])/(?P<nazwa>[\w ]+)/$', views.Pole)

这是views.py代码:

def Pole(request, pole, nazwa):
    try:
        entry = Entry.objects.get(pole=nazwa)
        return HttpResponse(entry.wpis)
    except Entry.DoesNotExist:
        return HttpResponse("Nuffin")

然而它抛出:

Exception Value:    
Cannot resolve keyword 'pole' into field. Choices are: name, id, date, value, wpis

我在Windows 7 x64上使用Python 3.5和Django 1.8.7

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

def Pole(request, pole, nazwa):

    try:
        criteria = {pole: nazwa}
        entry = Entry.objects.get(**criteria)
        return HttpResponse(entry.wpis)
    except Entry.DoesNotExist:
        return HttpResponse("Nuffin")