Tag: django

Django Json回复

我只需要一些帮助,我正在制作一个Ajax方法来加载网站中的一些内容: 这是我的方法: def get_subcat(request, id): sub_categories = SubCategory.objects.filter(parent_category=id) return HttpResponse(sub_categories) 这是ajax方法: function menu_element_hover(id){ $.ajax({ url:’/catalog/get_subcat/’+id }).done(function(data){ alert(data); }).fail(function(error){ alert(‘error’); }); } 问题是,我需要一个Json响应,但我得到的是一个带有子类别的String,例如:SnorkelsShirts 如果有人能帮助我请:D,不理睬!

Twitter-Bootstrap模式中的简单Django表单

我正在尝试使用Twitter-Bootstrap模式运行django表单。 我想知道如何返回/提交表单后我该怎么做。 我的views和templates如下。 url.py urlpatterns = patterns(‘myapp.views’, url(r’^$’, ‘main’), url(r’^add/’, ‘form_add’), ) views.py def main(request): if request.method == ‘POST’: form = MyModelForm(request.POST) if form.is_valid(): name = form.cleaned_data[‘name’] request.session[‘name’] = name mm = MyModel.objects.create(name=name) mm.save() return HttpResponseRedirect(‘/add’) # Redirect after POST else: form = MyModelForm() args = {} args[‘last_item’] = MyModel.objects.all().order_by(‘pk’).reverse()[0] args[‘form’] = form return render(request, […]

无法让getJSON显示数组中的值

我在显示$.getJSON调用的内容时遇到问题。 我有这个代码从页面中检索一些JSON数据。 var loadItems = function() { if (hasNextPage === false) { return false } pageNum = pageNum + 1; var url = baseUrl + “json/” + pageNum + ‘/’; var jqxhr = $.getJSON(url, function (data) { var a = []; $.each(data.itemList, function (item) { a.push(“” + item.title + “”); }); $(“”, {html: a.join(” “)}).appendTo(“#anchor”); […]

单击更改href并在新窗口中打开javascript

我有一个Django项目,为用户提供将用户帐户与Twitter和Facebook等社交网络帐户相关联的可能性。 这适用于Django Social Auth,它基本上提供了一个标签,以了解当前用户是否已经关联了帐户。 它允许以下代码相应地显示URL: Social Associations {% for key, value in social_auth.items %} {% if value %} Disconnect from {{ key }} {% else %} Associate your account to {{ key }} {% endif %} {% endfor %} 这是Django模板代码,执行时会给出以下html(当然显示的hrefs会根据用户的个人资料而变化,如果该帐户与社交网络相关联,这里我同时显示连接(对于Facebook)和断开(对于Twitter)URL): Social Associations Disconnect from twitter Associate your account to facebook 这工作正常,但有各种缺点。 首先,单击时,链接将通过打开关联/断开页面丢失当前导航。 这可以通过不打开它们来解决,只是用javascript调用GET如果存在(我记得用javascript调用POST来发送一些数据,GET也必须是可能的吗?)。 然后另一个缺点是,当点击链接不自动更新时,必须重新加载页面。 这可以通过将href更改为显示’disconnect’(如果它是’associate’)和’associate’(如果它是’disconnect’并且也切换URL)来解决。

根据下拉选择创建动态下拉选项 – 卡住

所以我正在尝试创建一个动态表单,其中第二个下拉框是根据第一个下拉列表填充的。 我正在使用ajax和jquery帮助在我的django项目中构建这个动态表单,我需要一点帮助。 我有一个正常工作的ajax调用,我已经将我的选择发送回表单,但现在我无法用我的选择填充表单。 有人可以帮我把json输出变成html选项吗? 这是我的ajax.py: def switch_plan(request, *args, **kwargs): from plans.models import Plan, OwnershipType, MemberType, PlanMember from datetime import datetime now = datetime.now() json = {} data = request.POST plan_type = data.get(‘plan-plan_type’) print plan_type if request.is_ajax(): if plan_type == ‘5’: ownership = OwnershipType.objects.all().exclude(id=3).exclude(id=8).exclude(id=9) json[‘owner_types’] = ownership return HttpResponse(simplejson.dumps(json), mimetype=’application/json’) 我的plans.html js代码: $(function(){ $(“#id_plan-plan_type”).change(function() { q […]

django jquery-form .load()如果表单错误

我正在使用jquery.load()函数将表单加载到弹出窗口div,到目前为止它运行良好。 我想补充的是,当表单提交错误时,它会将错误标记表单加载回弹出div而不是重定向到它当前正在执行的实际表单页面。 有人建议我使用jquery-form ,我觉得它可以很好地工作。 我只是不知道如何实现它。 这是.load()函数: $(document).ready(function(){ $(“.create”).on(“click”, function(){ $(“#popupContact”).load(“/cookbook/createrecipe #createform”); }); }); 这是加载表单的页面: x {% paginate %} 这是我的表单模板: Create New Recipe {% csrf_token %} {{ form.as_table }} 这是我尝试使用jquery-form: // wait for the DOM to be loaded $(document).ready(function() { var options ={ target: ‘.popup’, }; $(‘#createrecipe’).submit(function() { $(this).ajaxSubmit(options); return false; }); }); createrecipe视图: def createrecipe(request): […]

创建Django依赖下拉列表不会自动填充第二个下拉列表

我正在尝试使用此代码创建两个下拉列表,其中第二个下拉列表取决于第一个下拉列表。 但是我无法首先填充第二个下拉列表。 这是我关注的post: http://www.devinterface.com/blog/2011/02/how-to-implement-two-dropdowns-dependent-on-each-other-using-django-and-jquery/ 这是我的views.py函数: def createNewLocality(request,newLocality): return render(request, ‘locality/createNewLocality.html’, {‘term’: newLocality,’tag’: tagList()}) def all_json_models(request, tag): current_tag = Tag.objects.get(pk=tag) parents = Tag.objects.all().filter(parent__lt=current_tag) json_parents = serializers.serialize(“json”, parents) return HttpResponse(json_parents, content_type=”application/javascript”) 我的createNewLocality.html文件: Create New Locality $(document).ready( function() { $(“select#tag”).change(function() { if ($(this).val() == ‘Z’) { $(“select#parent”).html(“Select a parent”); $(“select#parent”).attr(‘disabled’, true); } else { var url = “tag/” […]

django jquery $ .get to $ .post

在django我有 #template $.get(“/places/{{ place.id }}/save/”,{description : cadena } #view place.description = request.POST.getlist(‘description’)[0] 工作还可以。 但如果尝试更改为$.post #template $.post(“/places/{{ place.id }}/save/”,{description : cadena } #view print request.POST 什么都没发生 解决了 我的问题,我没有在发送$.post的视图中添加了context_instance=RequestContext(request) ,因为这个crsf_token不存在。 有了这个改变现在工作 $.post(“/places/{{ place.id }}/save/”,{description : cadena, csrfmiddlewaretoken: ‘{{ csrf_token }}’} 并且必须{{ csrf_token }}而不是{% csrf_token %} 。 {% csrf_token %}创建

$ ajax命令和Json响应

在我的django应用程序中,我尝试使用ajax来检查用户名是否已经存在,如果是这种情况则显示错误。 这就是我所拥有的 HTML: {% csrf_token %} Valider JS: $(‘#my_form’).submit(function(){ var username = $(‘#username’).val(); if (username == ”){ alert(‘please enter username’); return false; } $.ajax({ type: “POST”, url: “/auth_validate”, data: {‘username’: $(‘#username’).val(), ‘csrfmiddlewaretoken’: ‘{{csrf_token}}’}, dataType: “text”, success: function(response) { var response = $.parseJSON(response); if (response.success){ return true; } else{ alert(response.error); return false; } }, error: function(rs, […]

jQuery文件上传器只发送一个块

我在我的Django应用程序中使用jQuery文件上传器。 我有一个问题,Django只收到我的大文件的一大块。 起初我认为这可能是我的UploadFileHandler的问题但是当我从上传器记录chunksend事件时它只被触发一次(而不是我的情况下的9次)。 任何想法为什么上传者只发送一个块? 这是我的代码: $(‘#fileupload’).fileupload({ dataType: ‘json’, maxChunkSize: 10000000, add: function (e, data) { console.log(data); var uploadRow = $(‘#upload-item-master’) .clone() .removeAttr(‘id’) .appendTo(“#upload-container”) .hide() .fadeIn(1000); uploadRow.find(‘.name’).text(data.files[0].name); var jqXHR = data.submit() .always(function (result, textStatus, jqXHR) { if(result.status == 201) { uploadRow.find(‘.progress .bar’).css(‘width’,’100%’); uploadRow.find(‘.progress’).removeClass(‘active’); } else { uploadRow.find(‘.progress .bar’).css(‘width’,’100%’); uploadRow.find(‘.progress’).removeClass(‘progress-success’); uploadRow.find(‘.progress’).removeClass(‘progress-success’); uploadRow.find(‘.progress’).addClass(‘progress-danger’); } }) }, chunksend: function(e, […]