Tag: django

从节点js到django的csrf问题

我想将node.js中的csrftoken传递给django。 我的server.js中有这段代码 socket.on(‘unread global’, function (data) { var values=querystring.stringify(); var options = { hostname:’localhost’, port:’8000′, path:’/chat/global_unread/’, method:’POST’, headers:{ ‘Content-Type’:’application/x-www-form-urlencoded’, ‘Cookie’: ‘csrftoken=’ + data.csrf, ‘Content-Length’:values.length } } 我的数据来自一个调用我的server.js的jquery函数 var datos = { // datos is the data that will be send to Node.js user: USER_PK_CHAT, csrf : window.CSRF_TOKEN }; socket.emit(‘unread global’, datos); 但最后我总是在我的控制台中得到同样的错误 失败原因: CSRF token […]

如何使用ckeditore使用ajax发送数据?

我在django有一个表格。 这是’撰写邮件’表格。 我将此表单从视图发送到我的模板,然后我应用ckeditor来改变体型。 我希望这个表格由ajax发布。 当使用ckeditor时,body字段的值不会随request.POST一起发送。 我使用这行代码来使用ckeditor: CKEDITOR.replace(‘id_body’); (不使用ckeditor,一切正常。) {% csrf_token %} {{ form.non_field_errors }} {% trans ‘recipient’ %}: {{ form.recipient }} {{ form.recipient.errors }} {% trans ‘subject’ %}: {{ form.subject }} {{ form.subject.errors }} {{ form.body }} {{ form.body.errors }} 我使用此脚本通过ajax发送表单数据: $(function() { $(‘#compose_form’).submit(function() { var temp = $(“#compose_form”).serialize(); $.ajax({ type: “POST”, data: temp, url: […]

如何在Django中组织JS文件?

我目前正在使用Django项目,我包含不同的库JS和我创建用于管理其他库的JS文件,但我不知道每个html页面的JS文件的正确组织,例如,我有一个“Main” .js“和”Milk.js“在基本模板中,但我不希望两个文件都在同一个基本模板中,我希望每个页面都有单独的文件。 我尝试添加为普通的js文件 但它向我显示一条错误消息,询问我从base.htmlinheritance时的几个依赖项 我希望你的帮助 编辑: Cuando heaadadias en mis archivos de plantillas,sin mostrarme error en la consola de cromo pero en la consola django mostrarme los archivos JS de carga con 304 error。 这些库位于base.html中 奇怪的是,当我从home.html点击时我可以加载milk.js但是当我点击其他页面例如“milk.html”从“Milk.html”无负载js文件时,即使我做了同样的“牛奶” html的”。

重复jquery ui问题

我正在研究一个Django项目。 但我的问题在于JQuery。 我使用jquery.formset.js JQuery插件在inline_formsets,formset_factories中动态添加表单。 这非常好用。 它使用其他装饰标签(如div,span,img ..)复制第一行元素,并在表格底部添加新行。 因此,重复的行可以像原点一样出现。 我还在表单中使用了jquery ui(datepicker,autocomplete..etc) 。 复制复制一切,甚至是日期选择器和自动复制的附加htmls,因为插件试图不留下任何接口片段。 当克隆第一行时,克隆所有内容,甚至克隆事件。 因此,当我单击新出现的datepicker输入时,日历事件将在第一行的元素上运行。 我正试图找到决定。 这是我到目前为止的想法.. 将jquery ui(datepicker和autocomplete)声明为live ? 喜欢 $(“。dates”)。live(’…’,function(){$(this).datepicker();}) 但我不确定应该为此处理哪个事件。 我想这是不可能处理新创建或附加的元素。 把脚本放在行内? 就在元素之后 $( “#id_birthday_1”)日期选择器()。 这似乎是最好的主意,但重复已经复制了额外的元素/ htmls。 所以它会重新渲染元素。 我应该编辑js插件吗? 比如绑定所有jquery ui的事件声明,除了渲染,追加和样式。 那将是一个巨大的混乱。 我不想像这样陷入困境..每次如果我需要添加一个新的ui,我应该不断编辑那个js 每个想法都将不胜感激:)

从AJAX POST开始,QueryDict总是空的

我已经看到了一些问题,但我试图实施他们的解决方案,但它对我没用。 我正在尝试使用POST将基本的AJAX请求发送到django视图。 这是我的JQuery: $(‘#save-button’).click(function() { var names = [‘BLOGGS Joe’, ‘SMITH John’]; data = JSON.stringify(names); $.ajax({ “contentType”: “application/json; charset=utf-8”, “data”: data, “url” : “/ajax/myteam/save/”, “type”: “POST”, “success”: function(response) { } }); }); 这是我的Django视图: def myteam_save(request): if request.method == ‘POST’: if request.POST: print ‘Hurray’ else: print ‘Boo’ response = HttpResponse(json.dumps({‘code’:’ok’}), content_type=’application/json’) return response 当我检查Firebug中发生的事情时,我发现post正在按照我的意图制作,但来自request.POST的QueryDict对象始终为空。 我一直在小心csrf令牌,我想甚至尝试在我的设置中关闭’django.middleware.csrf.CsrfViewMiddleware’,但这似乎没有效果。 我究竟做错了什么? […]

jquery month picker:设置初始最小/最大范围与“from”<“to”function冲突

我使用jQuery月选择器(没有日期),格式如:201110。 我想设置一个最小日期(参见代码),所以首先在django forms.py中定义它为date-min,然后将此日期解析为html。 首先是最小/最大范围。 (虽然现在不行)。 然后为了实现“to”日期总是晚于“from”日期,我还需要使用min / max函数,然后它会覆盖我从SQL设置的前一个月范围。 目前的情况是我可以实现“到”日期>“从”日期。 但是最小日期(来自MYSQL)现在不起作用。 我怎么能解决这个冲突,请告诉我。 提前致谢 感谢您的回复。 $(function() { $( “#from, #to” ).datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: ‘yy MM’, minDate: $(this).date-min, ///it is here doesn’t work, the minDate is coming from Django onClose: function(dateText, inst) { var month = $(“#ui-datepicker-div .ui-datepicker-month :selected”).val(); var year = $(“#ui-datepicker-div […]

在AJAX请求中使用@csrf_exempt时,为什么会出现403 Forbidden错误?

我试图在Django中编写一个非常基本的AJAX请求,并且我一直在Chrome Dev和Django控制台中获得403禁用错误。 我前几天发布了一个类似的问题并尝试了所有提议的解决方案,包括@csrf_exempt(以排除这是否是一个csrf问题),我尝试在AJAX POST请求中包含csrfmiddlewaretoken:'{{csrf_token}}’ (在数据下面),这也没有解决问题。 这是我的代码。 def profile_listview(request, username, template_name=userena_settings.USERENA_PROFILE_DETAIL_TEMPLATE, extra_context=None, **kwargs): user = get_object_or_404(get_user_model(), username__iexact=username) fullsalelist = Entry.objects.filter(author__username__iexact=username) @csrf_exempt def delete_object(request): if request.is_ajax(): print “request is ajax” object_name = request.POST.get(‘entryname’) targetobject = Entry.objects.get(headline=object_name) if request.user.username == targetobject.author: targetobject.delete() print “hello” return HttpResponseRedirect(‘/storefront/’) 和模板中的AJAX代码: var my_app = { username: “{{ request.user.username }}” }; $(document).ready(function() { […]

405(方法不允许)与django的ajax请求

我有以下基于类的视图 class SupportView(BaseDetailView): def render_to_response(self): if self.request.method == “POST”: message = “YES” else: message = “NO” return HttpResponse(message) 并遵循Jquery代码: var username = $(‘.username’).attr(‘data-username’); $(‘.destek’).click(function(){ $.ajax({ url:”/profiles/support/”, type:”POST”, data:{“username”:username, ‘csrfmiddlewaretoken’: ‘{{csrf_token}}’}, dataType:”json” }) }) 并关注url url(r’^support/$’, SupportView.as_view()) 但是当我点击按钮时,我看到127.0.0.1:8000/profiles/support/ 405 (METHOD NOT ALLOWED) error. Any ideas ? 127.0.0.1:8000/profiles/support/ 405 (METHOD NOT ALLOWED) error. Any ideas ?

关闭模态后刷新父页面

当用户打开此模式时,他们可以看到他们的购物车信息并删除模式上的项目(其他jquery)。 但是,如何在用户关闭模式后刷新父页面? 我看过几篇post,但没有找到有关我情况的有用信息。 我知道我需要使用像window.location.reload(true);这样的东西window.location.reload(true); 我应该把它放在代码中的哪个位置? $(function(){ $(‘#main’).off(‘click.login’).on(‘click.login’,function(){ $(‘body’).loadmodal({ id:’cart’, title:’Shopping Cart’, url:’/cartDisplay/’, width: ‘550px’, }); }); }); 更新 $(function(){ $(‘#main’).off(‘click.login’).on(‘click.login’,function(){ $(‘body’).loadmodal({ id:’cart’, title:’Shopping Cart’, url:’/polls/cartDisplay/’, width: ‘550px’, }); }); $(‘#cart’).on(‘hidden’, function () { window.location.reload(true); }) });

关于django模板中表单字段值的动态隐藏/取消隐藏选项卡

我有一个模板,在标签中呈现三个表单。 第三种forms是隐藏的,如果选择第二种forms的字段中的值(通过下拉选择),我想动态输入。 当我在第二个表单上选择选项b-option时,我想取消隐藏第三个选项卡。 有任何想法吗? input.html(模板) {% csrf_token %} Demographics Diagnosis A_b_sickle {%crispy frm%} {%crispy frm_d%} {%crispy frm_a_b_s%} views.py def input(request): context = RequestContext(request) if request.method == ‘POST’: my_demographics = DemographicForm(request.POST, prefix=”demo”) my_diagnosis = DiagnosisForm(request.POST, prefix=’diag’) my_a_b_sickle= A_b_sickle_thalForm(request.POST,prefix=’a_b_s’) if my_demographics.is_valid() and my_diagnosis.is_valid() and my_a_b_sickle.is_valid: my_demographics_object = my_demographics.save() my_diagnosis_object = my_diagnosis.save(commit=False) my_diagnosis_object.patient = my_demographics_object my_diagnosis_object.save() my_a_b_sickle_object = […]