オブジェクトが実際に選択されたら、追加の ajax 呼び出しを行う必要があるようです。クライアント側で URL を計算しようとして、url.conf を推測しようとしないでください。後で問題が発生するだけです。pk を取得できるまで待ってから、django の reverse 関数を使用して URL を取得します (それ以外のことを行うと、DRYに違反します)。
URLを返す簡単なビューを作成するのはどうですか -
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseBadRequest
def get_url(request):
if request.is_ajax() and request.method == 'POST':
obj_id = request.POST['obj_id']
url = reverse('object-update', kwargs{'pk': obj_id})
return HttpResponse(obj_id)
return HttpResponseBadRequest()
次に、新しいビューへの ajax 呼び出しを使用して URL を取得し、リダイレクトする JavaScript 関数を記述します。オブジェクトが選択されるとすぐに、この関数を呼び出します。これを行うには JQuery を使用することをお勧めします。純粋な JavaScript では、より多くのコードを記述する必要があり、おそらくブラウザー固有のコードを記述する必要があります (ターゲットによって異なります)。また、django の csrf 保護の処理もサポートしています (まだ実装していない場合は、ajax 呼び出しに対してこれを実装する必要があります)。
var redirect = function(obj) {
$.ajax({
url: '/your-get-url-view/',
method: 'post',
data: {'obj_id': obj},
success: function(url){
window.location = url;
}
});
}
残念ながら、選択したオブジェクトから pk にどのように到達しているのかわかりません (簡単にするために、redirect関数で使用できると想定しています)。そこに到達するには、ビューで何らかの処理を行う必要がある場合があります。
私は上記のコードをテストしていませんが、私が提案していることは理解できるはずです。