我正在尝试将一个简单数字的jQuery数组发布到Django,我真的无法使它工作.我需要一点帮助.我收到一个Http 500,出现以下错误:
Internal Server Error: /edit_lists/
Traceback (most recent call last):
File "/home/jabez/.virtualenvs/hackernews/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in get_response
response = middleware_method(request, response)
File "/home/jabez/.virtualenvs/hackernews/local/lib/python2.7/site-packages/django/middleware/common.py", line 106, in process_response
if response.status_code == 404:
AttributeError: 'list' object has no attribute 'status_code'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
$('.btn-group').find('#mark_as_done').on('click', function() {
var tasks = grab_selected();
$.ajax({
type: 'POST',
url: '/edit_lists/',
data: {'tasks': tasks},
});
});
function grab_selected() {
var tasks = [];
$('input:checked').each(function() {
tasks.push(this.id);
});
return tasks;
}
Run Code Online (Sandbox Code Playgroud)
def edit_lists(request):
tasks = request.POST.getlist('tasks')
return tasks
Run Code Online (Sandbox Code Playgroud)
我有这个奇怪的问题,我找不到原因.我使用django 1.7和django rest框架和用于api身份验证的令牌身份验证来构建API.所有在本地主机上工作正常,但是当我尝试调用需要在生产计算机上进行身份验证的API端点时,我将获得403状态代码以及以下消息:{"detail":"未提供身份验证凭据". }.我做错了什么?
我按照文档在标题中发送令牌.以下是我的设置文件的外观:
INSTALLED APPLICATIONS = (
'......',
'rest_framework',
'rest_framework.authtoken',
'rest_framework_swagger',
'corsheaders',
'......')
MIDDLEWARE_CLASSES = (
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.admindocs.middleware.XViewMiddleware',
'django.middleware.common.CommonMiddleware',
'admin_reorder.middleware.ModelAdminReorder',
)
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny'
],
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
),
'PAGINATE_BY_PARAM': 'page_size',
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',),
'VIEW_DESCRIPTION_FUNCTION': 'rest_framework_swagger.views.get_restructuredtext'
}
REST_SESSION_LOGIN = False
CORS_ORIGIN_ALLOW_ALL = True
Run Code Online (Sandbox Code Playgroud) python authentication django django-rest-framework django-rest-auth
我有一个字段表,我可以通过JQuery动态添加表数据.问题是我添加的元素没有我为该组td设置的属性,直到我重新加载整个页面,我不知道必须触发什么才能采取新的操作.
这是我的代码:
#js file
function add_task() {
task_name = $("#task-name").val();
due_date = $("#task-due_date").val();
var new_task = $.ajax({
url: "/add_task/",
data: "task="+task_name+"&due_date="+due_date,
success: function(task_id){
get_task(task_id);
}
});
}
function get_task(task_id) {
$.ajax({
url: "/get_task/"+task_id+"/", //get the html from single_task.html
success: function(result){
$('#container').append(result);
$('#task-'+task_id).fadeIn(500);
}
});
}
#single_task.html
<tr id="task-{{task.id}}">
<td><div id="task">
<a href="#" data-type="text" data-pk="{{task.id}}" data- url="/update_task/{{task.id}}/" data-title="Enter task">{{ task.task }}</a>
</div></td>
<td>{{ task.initialized_at|age }}</td>
<td>{{ task.due_date }}</td>
<td>{{ task.done }}</td>
<td><button onclick="delete_task('{{task.id}}');" class="btn"> X </button></td>
Run Code Online (Sandbox Code Playgroud)
#index.html //place where to load …
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置动态检索pk并且此选择器不起作用,这是我的代码:
#html file
<div id="{{task.id}}">
<h3>
<a href="#" id="task">{{ task.task }}</a>
</h3>
...
</div>
#js file
$("#task").editable({
type: 'text',
**pk: $(this).closest('div').attr('id'),**
url: '/update_task/' + pk + '/',
title: 'Enter task',
});
Run Code Online (Sandbox Code Playgroud)
这个不起作用,但如果我写:
pk: $("#task").closest('div').attr('id')
Run Code Online (Sandbox Code Playgroud)
会工作,但对我来说不方便.
先感谢您 :)