python - Django URL 路由问题

标签 python django

对 Django 很陌生,所以我很抱歉,因为我确信这有一个简单的答案。

我有 PHP 背景,所以我猜我是在尝试强制使用一种我习惯的结构,而不是 Django 中固有的结构。

这是我的项目的urls.py

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('pm.urls', namespace='pm')),
)

这是我的应用程序的 urls.py

from django.conf.urls import patterns, url
from pm import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^label/add/$', views.add_label, name='label_add'),
)

我正在向/label/add/发出 AJAX Post 请求,但返回时出现 500 错误。

这是 views.py:

from django.shortcuts import render
from pm.models import Label
import json

# Create your views here.
def index(request):
    labels_list = Label.objects.order_by('name')
    return render(request, 'pm/index.html', {
        'labels' : labels_list
    })


""" Labels """
def add_label(request):
    if request.is_ajax():
        response = {
            'success': True
       }
    else:
        response = {
            'success': False,
            'error': "Invalid request"
        }

    return json.dumps(response)

任何建议或引用都会很棒。


更新

这是我得到的回溯的前几行:

AttributeError at /label/add/
'str' object has no attribute 'get'

最佳答案

你必须返回 HttpResponse 而不是字符串:

return HttpReponse(json.dumps(response), content_type='application/json')

关于python - Django URL 路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044544/

相关文章:

java - 如何在动态类型语言(即 Python)中指定参数类型?

python - 在 Django/python 中,如何将内存缓存设置为无限时间?

python - 如何在 Django 管理中过滤 filter_horizo​​ntal?

python - 获取当前的 windows media player 实例

python - 查询 DSL 在 pyes 搜索中不起作用

python - Turtle 迷你项目 - Udacity - Python - 围绕另一个形状绘制/移动一个形状

django - 执行删除数据库后,开发服务器上的 django 管理页面中缺少 CSS

python - 如何在 Django 中进行表单验证

javascript - 无法对帖子磁带中的每个帖子使用带有 ajax 的 Like 按钮

python - 以管理员身份运行 python 脚本