Note that there are some explanatory texts on larger screens.

plurals
  1. PO500 error on Django Ajax form
    primarykey
    data
    text
    <p>I have a form that works normally but isn't working now that I've tried to convert it to Ajax. I'm getting a 500 error. Any ideas?</p> <p>Initial form HTML</p> <pre><code>&lt;form method="post"&gt; {% csrf_token %} &lt;input type='hidden' name='entry_id' value='{{ e.id }}'&gt; &lt;input type='hidden' name='project_id' value='{{ project.id }}'&gt; &lt;input type='hidden' name='team_id' value='{{ t.id }}'&gt; {% get_vote_status request=request project=project entry=e.entry %} &lt;/form&gt; </code></pre> <p>Template tag used above</p> <pre><code>@register.simple_tag def get_vote_status(request, project, entry): user = request.user determined_vote_status = False try: for v in user.userprofile.votes.all(): if v.entry == entry: determined_vote_status = True return '''&lt;button type="submit" name="remove_vote" value="Remove Vote" class="votingbutton"&gt;&lt;img src="/static/bootstrap/img/checked.png" alt="Voted" class="check-button"&gt;&lt;/button&gt;''' if determined_vote_status is False: return '''&lt;button type="submit" name="add_vote" value="Add Vote" class="votingbutton"&gt;&lt;img src="/static/bootstrap/img/check.png" alt="Voted" class="check-button"&gt;&lt;/button&gt;''' except: pass </code></pre> <p>Updated Ajax HTML</p> <pre><code>&lt;script type="text/javascript"&gt; $(document).ready(function() { var csrftoken = $.cookie('csrftoken'); function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ crossDomain: false, // obviates need for sameOrigin test beforeSend: function(xhr, settings) { if (!csrfSafeMethod(settings.type)) { xhr.setRequestHeader("X-CSRFToken", csrftoken); } } }); $("#button{{ forloop.counter }}").click(function() { var $url = "/craig-test/testing-craig/6/5/"; var $type = "POST"; var $dataType = "json"; var $data = { 'entry_id': {{ e.id }}, 'project_id': {{ project.id }}, 'team_id': {{ t.id }}, csrfmiddlewaretoken: csrftoken }; $data = JSON.stringify($data); $.ajax({ url : $url, type : $type, dataType: $dataType, data : $data, success : function(json) { console.log("+1"); }, error : function(xhr,errmsg,err) { console.log(errmsg, err); } }); return false; }); }); &lt;/script&gt; &lt;form method="post" name="vote form" &gt; {% csrf_token %} &lt;input type='hidden' name='entry_id' value='{{ e.id }}'&gt; &lt;input type='hidden' name='project_id' value='{{ project.id }}'&gt; &lt;input type='hidden' name='team_id' value='{{ t.id }}'&gt; &lt;input id="button{{ forloop.counter }}" type="button" value="send to server"&gt;&lt;/input&gt; &lt;/form&gt; </code></pre> <p>views.py</p> <pre><code>@login_required(login_url='/accounts/login/') def projects(request, teamslug, projectslug, teamid, projectid, template_name='projects.html'): teams = Team.objects.all() projects = Project.objects.all() userprofile = UserProfile.objects.all() votes = Vote.objects.all() user = request.user for p in user.userprofile.projects.all(): sluglist.append(p.slug) if projectslug in sluglist: if request.is_ajax(): raise ValueError("tktktkt") </code></pre> <p>urls.py</p> <pre><code>url(r'^(?P&lt;teamslug&gt;[^\.]+)/(?P&lt;projectslug&gt;[^\.]+)/(?P&lt;teamid&gt;[^\.]+)/(?P&lt;projectid&gt;[^\.]+)/$', 'ideas.views.projects', name='project_url') </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload