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

Python 在ORM查询中使用变量作为字段,python,django,python-3.x,Python,Django,Python 3.x,我正在尝试制作一个应用程序,将URL解析为数据库中的条目。因此,我有一个数据库,其中包含诸如('name'、'date'、'value')之类的行和许多条目,如('Tom'、'27/12/2015'、'5')。我希望我的应用程序以以下方式解析URL http://.../app/name/Tom http://.../app/value/5 在第一种情况下,它应该搜索名为“name”的行,然后找到一个条目,其中该行等于字符串“Tom”,等等。这是URL.py代码: url(r'(?P&

我正在尝试制作一个应用程序,将URL解析为数据库中的条目。因此,我有一个数据库,其中包含诸如('name'、'date'、'value')之类的行和许多条目,如('Tom'、'27/12/2015'、'5')。我希望我的应用程序以以下方式解析URL

http://.../app/name/Tom
http://.../app/value/5
在第一种情况下,它应该搜索名为“name”的行,然后找到一个条目,其中该行等于字符串“Tom”,等等。这是URL.py代码:

    url(r'(?P<pole>[name|date|value])/(?P<nazwa>[\w ]+)/$', views.Pole)
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上使用Python3.5和Django 1.8.7,您可以尝试以下方法:

def Pole(request, pole, nazwa):

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

输入模型有一个“极点”字段?是的,我知道你的意思,但我完全不知道如何将变量中的值解析为字段。它在不同的抽象层次上……这很奇怪。我尝试了你的答案,但它抛出了另一个错误,所以我检查了views.Pole函数的参数,似乎URL正则表达式中存在某种错误,因为它将第一个变量“剪切”到最后一个字母:return HttpResponse(Pole+“”+nazwa)只返回“pole”变量的最后一个字母…@KamilGorski尝试在末尾添加“+”,就像在第二个参数中一样谢谢你!现在一切都好了!:)就这么简单!:)为什么正则表达式只捕获没有“+”的最后一个字母?@KamilGorski您需要指定期望的字符数,没有“+”只需要一个字符。