私はDjango By Exampleチュートリアルに従っており、ユーザに従うことができません。私はフォローボタンをクリックしますが、何も起こりません。私はそのセクションを何度も繰り返し、コードをコピーして貼り付けました。それでも動作しません。ここで ユーザをフォローするAJAXビューを構築する
は、私の見解
@ajax_required
@require_POST
@login_required
def user_follow(request):
user_id = require.POST.get('id')
action = request.POST.get('action')
if user_id and action:
try:
user = User.objects.get(id=user_id)
if action == 'follow':
Contact.objects.get_or_create(user_form=request.user,user_to=user)
else:
Contact.objects.filter(user_form=request.user,user_to=user).delete()
return JsonResponse({'status':'ok'})
except User.DoesNotExist:
return JsonResponse({'status':'ko'})
return JsonResponse({'status':'ko'})
これは私のHTMLブロックでアヤックスである
{% block domready %}
$('a.follow').click(function(e){
e.preventDefault();
$.post('{% url "user_follow" %}',
{
id: $(this).data('id'),
action: $(this).data('action')
},
function(data){
if (data['status'] == 'ok') {
var previous_action = $('a.follow').data('action');
// toggle data-action
$('a.follow').data('action',
previous_action == 'follow' ? 'unfollow' : 'follow');
// update total followers
var previous_followers = parseInt(
$('span.count .total').text());
$('span.count .total').text(previous_action == 'follow' ?
previous_followers + 1 : previous_followers - 1);
}
}
);
});
{% endblock %}
これはURL
**
です#Users
url(r'^user/$', views.user_list, name = 'user_list'),
url(r'^users/follow/$', views.user_follow, name='user_follow'),
url(r'^users/(?P<username>[-\w]+)/$', views.user_detail, name = 'user_detail'),
**
ご協力いただきありがとうござい
べき場所のgetあなたがデータを初期化要求(「ID」)とデータ(「アクション」)のためのビューがありますか?ポストビューにブレークポイントを設定すると、受信したデータは何ですか?ちょうどあなたのjavascriptコンソールで、あなたのビューメソッドが呼び出されていることを確認して、 'ko'ステータスが返されたことがわかりますか? – dirkgroten
@dirkgroten私はあなたの質問をよく理解していません。あなたはもう少し明示的になりますか? –
あなたのスクリプトは 'id:$(this).data( 'id')'を投稿しています、 '$(this).data( 'id')'は最初に? $(this)はあなたのHTMLページの 'a.follow'要素を指しているので、私はそれがどのように定義されていて、どのテンプレートがそのテンプレートをレンダリングしているのだろうと思います。私はあなたの 'user_follow'メソッドで' ko'のステータスを返すので、データ( 'id')とデータ( 'action')は空であると思っています。ブラウザの '' ko''が返されます) – dirkgroten