我试图将’this’对象的id从ajax调用传递到django视图,但是我的broswer中出现以下错误: 因为我是django和ajax的初学者,这就是代码中可能存在错误的原因。 这是我的代码: views.py from django.shortcuts import render from librarysystem.models import Users from django.http import JsonResponse def index(request): template = ‘librarysystem/Elib.html’ return render(request,template) def validateForm(request, id): data = { ‘isTaken’ : Users.objects.filter(username__iexact=request.GET.get(id,None)).exists(), #’emailidTaken’ : Users.objects.filter(emailid__iexact=emailid).exists(), } return JsonResponse(data) urls.py from django.conf.urls import url from .import views urlpatterns = [ url(r’^registered/$’,views.create_user), url(r’^$’, views.index, name=”Index”), url(r’^validate(?P)/$’,views.validateForm), #url(r’^article/$’, […]
我有一个带有AJAX菜单的Django模板(点击不同的菜单项会重新加载页面的一部分)。 每个菜单单击通过AJAX调用Django视图函数,并返回一些要在页面上显示的数据。 我正在加载主页面中所有菜单项所需的所有JS(因为我了解到AJAX在 返回JS然后使用eval()来执行它并不是一个好主意)。 由于我只在菜单的主页面上加载所有JS,因此在启动时显然不存在其他菜单选项的数据,因为稍后调用相应的视图时(单击菜单选项时) 因此,像下面的代码在控制台上给出了语法错误,因为JS仅在第一次被解析。 var data = {{se_data|safe}}; 现在我无法使用从视图返回的数据,即使在我单击菜单选项之后,因为JS解析首先失败了。 我尝试使用if只在选择了相应的菜单选项时执行代码,但由于解析器只解析所有内容,因此也无效。 我一直在尝试不同的方法来解决这个问题,但似乎无法找到解决这个问题的有效方法。 另一种方法是让视图函数首先返回所有数据,但我担心菜单选项和返回的数据可能会随着时间的推移而增长,从而延迟了主菜单页面的初始加载。 这是ajax菜单的点击function: $(“.ent-menu li a”).click(function(e) { e.preventDefault(); // prevent from going to the page mentioned in href // get the href var href = $(this).attr(“href”); $(“#data_container”).load(href, function() { load_data(); //this function uses the data variable defined earlier }); }); 加载菜单主页时我在控制台中看到的错误: Uncaught SyntaxError: […]
我的jquery看起来像这样: $(‘#id_start_date_list’).change( function get_time() { var value = $(this).attr(‘value’); alert(value); var request = $.ajax({ url: “/getTime/”, type: “GET”, data: {start_date : value}, dataType: “json”, success: function(data) { //Popluate combo here by unpacking the json } }); }); 我的view.py看起来像这样: def getTime(request): if request.method == “GET”: date_val = request.GET.get(‘start_date’) format = ‘%Y-%m-%d’ sd = datetime.datetime.strptime(date_val, format) sql_qw […]
我正在尝试提交publish_actions以使我的网站用户能够发布发布操作,以便我的网站在我的网站上发布更新时可以自动发布到他们的墙上。 我填写了表格并添加了所有其他详细信息但是当我在下面的选项中单击选项3时,我得到: 应用不会被批准用于publish_actions的此用途。 要获得批准,应用必须遵循我们的审核标准和使用publish_actions的准则。 当我点击Add Notes时,这些是Facebook的选项: 让人们使用自定义composer php发布到Facebook 发布Open Graph故事 自动将内容发布到Facebook 允许人们使用“共享”对话框或“Feed”对话框发布到Facebook。 1和2可以做我想要的吗? 如果不是,我该如何让我的网站自动发布?
我将在Django中获取参数forms的AJAX请求,这就是我正在做的事情: base.html文件: {% csrf_token %} First name: main.js: $(document).ready(function(){ $(“#register”).live(“click”, function(e){ $.post(“/”, { name: “MY TEXT”, }); }); }); views.py: from django.shortcuts import render_to_response from django.template import RequestContext from django.core.context_processors import csrf def home(request): if request.method == ‘POST’: print request.POST[‘name’] return render_to_response(‘registration.html’, {}, context_instance=RequestContext(request)) 是的,我知道此时我的JS没有从文本表单中获取真实数据,它只发送一个静态文本“MY TEXT”。 但是当我按下按钮时,我得到“MultiValueDictKeyError at /”密钥’name’在“”中找不到 我做错了什么? 我改变了我的代码:main.js $(document).ready(function(){ $(“#register”).live(“click”, function(e){ e.preventDefault(); […]
我有一个todo列表,我在一个表元素中显示: Task Name {% for action in actions %} {{ action }} {{ action.notes }} {% endfor %} 我在表格的每一行上的动作名称和动作注释之间交替。 当页面加载时,我隐藏了所有详细信息,以便用户只能看到操作名称。 如果用户点击名称行,我会显示该操作的注释行(使用切换)。 $(document).ready(function() { $(“.detailed_row”).hide(); }); $(function($) { $(“.item_row”).click(function() { if( $(this).next().is(‘:hidden’) ) { $(“.detailed_row”).hide(); $(this).next().toggle(‘fast’); } else { $(“.detailed_row”).hide(); } }); }); 我希望用户能够通过拖动操作名称行来排序待办事项列表。 我正在使用jQuery的Sortable: $(“.sortable”).sortable().disableSelection(); 让我们暂时忽略动作音符行的移动。 如果用户拖动一个音符行,或者在另一个名称和一个音符行之间放置一个名称行,则会使切换逻辑陷入混乱。 我已经通过在移动音符行时移动名称行来解释这一点,反之亦然,因此对总是按正确的顺序排列。 我遇到的问题是注释行中的注释大小。 如果音符只有几行,则排序行为表现得很好。 但是如果音符足够长,即使音符被折叠,分类似乎也不能很好地工作。 例如,如果我用实际文本替换{{action.notes}},这可以正常工作: Task Name {% […]
我已经安装了“Django autocomplete light”,现在按照本教程进行操作: https : //django-autocomplete-light.readthedocs.org/en/master/tutorial.html 这是我到目前为止的代码: setting.py INSTALLED_APPS = ( ‘dal’, ‘dal_select2’, ‘garages’, ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ) models.py class Country(models.Model): name = models.CharField(max_length=200) def __str__(self): return self.name class Person(models.Model): birth_country = models.ForeignKey(Country) def __str__(self): return self.birth_country views.py class CountryAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self): # Don’t forget to filter out results depending on the […]
我有以下代码片段,它给出了未终止的字符串文字错误 $(function() { $(‘#addDropdown’).click(function() { var $d = $(‘{{ form |bootstrap }}’).fadeIn().delay(1000); $(‘#dropdownContainer’).append($d); }); }); 我查看了未终止的字符串文字问题,发现这是因为多行问题。我{{form | bootstrap}}有多行代码,如问题所述。那么我该如何处理问题
我的django版本是1.8.6。 我将corsheaders文件夹复制到项目文件夹中。 我已经安装了django-cors-headers(版本1.1.0)。 这是我的setting.py: INSTALLED_APPS = ( ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘MyWebsite_app’, ‘storages’, ‘rest_framework’, ‘corsheaders’, ) MIDDLEWARE_CLASSES = ( ‘django.contrib.sessions.middleware.SessionMiddleware’, ‘corsheaders.middleware.CorsMiddleware’, ‘django.middleware.common.CommonMiddleware’, ‘django.middleware.csrf.CsrfViewMiddleware’, ‘django.contrib.auth.middleware.AuthenticationMiddleware’, ‘django.contrib.auth.middleware.SessionAuthenticationMiddleware’, ‘django.contrib.messages.middleware.MessageMiddleware’, ‘django.middleware.clickjacking.XFrameOptionsMiddleware’, ‘django.middleware.security.SecurityMiddleware’, ) CORS_ORIGIN_ALLOW_ALL = True 这是我的jquery: function getLeague() { $.ajax({ url: ‘http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx’, type: ‘GET’, dataType: ‘json’, success: function(data) { alert(‘Success’); }, error: function(data) { alert(‘Fail’); } […]
我正在使用django 在体块中 {% if liked %} {% else %} {% endif %} 在on_ready脚本块中: $.ajaxSetup({ data: {csrfmiddlewaretoken: ‘{{ csrf_token }}’}, }); $(‘#like’).click(function() { $.post(“{% url ‘likevideo’ %}”, {uid:{{ login_id }}, videoid:”{{ videoid }}”}, function(data,status){ $(‘#tag_like’).load(‘ #tag_like’) }); }); $(‘#unlike’).click(function() { $.post(“{% url ‘unlikevideo’ %}”, {uid:{{ login_id }}, videoid:”{{ videoid }}”}, function(data,status){ $(‘#tag_like’).load(‘ #tag_like’) }); }); 它在第一次单击图像时工作正常。(转到另一个图像)但是当再次单击它时,不会发生任何ajax动作。 […]