【问题标题】:send list (UNICODE) in url Django在 URL Django 中发送列表(UNICODE)
【发布时间】:2016-08-17 07:52:47
【问题描述】:

我想在 url 中发送数据库查询的结果。 问题是我找不到与结果匹配的网址。

我做了一个函数来删除结果中的 ( ) 字符。 但是在发送它的那一刻,我收到了这个错误。

未找到带有参数“(u'Juegos',)”和关键字参数“{}”的“deleteProject”的反向操作。尝试了 1 种模式:['Administration/deleteProject/(?P[-\d]+)$']

views.py

def index(request):
    arrayBases = getDatabases(request)
    return render(request, 'index.html', {
        'arrayBases': arrayBases,
    })

def getDatabases(request):
    cursor= connection.cursor()
    cursor.execute("SELECT * FROM Administration_proyecto")
    bases = cursor.fetchall()
    arrayBases = []
    for i in bases:
        for j in i:
            arrayBases.append(j)
    return arrayBases

def deleteProject(request, base):
    print request
    return HttpResponseRedirect(reverse('index'))

index.html

<table>

  <tr>
  <th>Nombre del proyecto</th>
  <th>Acción</th>
</tr>

{% if arrayBases %}
  {% for base in arrayBases %}
  <tr>
    <td id="{{ base }}"> {{ base }} </td>
    <td>
      <a href="{% url 'deleteProject' base %}">
        <img height="15px" src="{% static "icons/delete.svg" %}">
      </a>
    </td>

  </tr>
  {% endfor %}
{% endif %}

</table>

urls.py

urlpatterns = [
    url(r'^index/$', views.index, name='index'),
    url(r'^deleteProject/(?P<base>[-\d]+)$', views.deleteProject, name="deleteProject"),
]

我尝试将 d 更改为 url 中的 w,但它不起作用

【问题讨论】:

  • 根据您的代码,这看起来像是 Administration_proyecto 表中的数据有问题。你能张贴几行该表吗?
  • 这是行:(u'Juegos',)' (u'PruebaTemp',)'
  • 看起来不太对劲。另外,您是否有用于管理程序的 django 模型,还是必须通过原始 SQL 访问的表?

标签: python django django-urls


【解决方案1】:

您可以将您的 URL 端点正则表达式模式更改为:

^deleteProject/(\w+)/?$

其中(\w+) 是一个未命名的捕获组,它将匹配一个或多个字母数字字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多