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

2024-04-19 13:17:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个应用程序,可以将URL解析为数据库中的条目。因此,我有一个数据库,其中的行有('name'、'date'、'value'),还有一些条目有('Tom'、'27/12/2015'、'5')。我想我的应用程序解析网址的方式如下

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

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

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

这就是视图.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

我在Windows7x64上使用Python3.5和Django1.8.7


Tags: 代码namepy数据库app应用程序httpdate
1条回答
网友
1楼 · 发布于 2024-04-19 13:17:31

你可以试试这个:

def Pole(request, pole, nazwa):

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

相关问题 更多 >