0
在Django中,我有一個按鈕 「選擇」,如下所示:Django的jQuery的按鈕 「選擇一個帖子」
<button class="click" id ="click" data-id="{{ Post.id }}" class="btn btn-mini btn-primary" type="button">Pick</button>
這個HTML裏面for循環顯示帖子:
{% for Post in latest_posts %}
{{Post.id }}
{{Post.author}}
{{Post.title}}
//button comes here.
{% endfor %}
我jQuery代碼是:
$(document).ready(function() {
$('#click').click(function(){
console.log("create post is working!")
var pickid;
pickid = $(this).attr("data-id");
$.post('create_date/', {pickid: pickid}, function(data){
alert('Button click recorded.')
});
})
});
和我的觀點:
def record_button_click(request, *args, **kwargs):
if request.is_ajax() and request.method == 'POST':
id = request.POST.get('pickid')
response_data = {}
form=Pick(post=id,user=request.user)
response_data = {}
form.save()
response_data['result'] = 'Create post successful!'
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
else:
return HttpResponse(
json.dumps({"nothing to see": "this isn't happening"}),
content_type="application/json"
)
有了這個代碼,我們的想法是將信息保存到挑表當用戶點擊按鈕「選擇」:
class Pick(models.Model):
user=models.ForeignKey(User)
post=models.ForeignKey(Post)
pick_date = models.DateTimeField('date picked',default=datetime.datetime.now())
什麼我錯在這裏做什麼?
在此先感謝
很難說,因爲你沒有說出發生了什麼。但有一個問題是,你不能有多個具有相同ID的HTML元素。放下id並將jQuery監聽器綁定到類上,即'.click'。 – 2014-10-19 15:43:17
謝謝@DanielRoseman,這解決了一個問題!我仍然在控制檯得到這個錯誤:'POST http://127.0.0.1:8000/post/create_date/ 500(INTERNAL SERVER ERROR)''XHR完成加載:POST「http://127.0.0.1:8000/post/create_date /「'我沒有儲存在DB中 – Tim 2014-10-19 16:21:57
你應該看看你的瀏覽器的開發工具,網絡標籤應該顯示你後端發送的實際錯誤信息。 – 2014-10-19 17:08:25