对 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/