2012-12-12 3 views
2

나는 영어를 잘 말하지 않니? 하지만 난 장고에 문제가있다. 내가 가진 모델 :장고 : 아약스 & 요청

class Model1(models.Model): 
    model2 = models.ManyToManyField(Model2) 
    #... 
class Model2(models.Model): 
    model3 = models.ForeignKey(Model3) 
    #... 
class Model3(models.Model): 
    custom = models.CharField() 

은보기가 이름의 양식을 제출하면, = 아약스는 필드의 값이 같은 모델 2에 속하는 모든 개체를 제거했다 "삭제"입니다

def simple(request, simple_id): 
    if request.method == 'POST': 
     if request.is_ajax(): 
      if 'delete' in request.POST: 
       id3 = request.POST.get('delete', '') 
       Model1.objects.get(id = simple_id).model2.filter(model3__id = id3).delete() 

<form action="" method="post" id="simple">{% csrf_token %} 
<input type="submit" name="delete" id="simple_delete" value=""> 
</form> 

JS에서 전달 된 값 :

0 "model3는" 다음은 템플릿의 조각이다
$('.deletebutton').click(function(){ 
    id = $(this).attr('data-id'); 
    $('#simple_delete').attr('value', id); 
    $('#simple').ajaxForm(); 
    $('#simple_delete').click(); 
}); 

음, 각각 플러그인 jquery.form.js도 연결

문제는 이것이다 - 아약스없이 제출이 모두 정상인지, 작동 ... 그리고 아약스 오류 잘못된 int 값 등입니다 함께있는 경우 ... Ajax를 통해 어떻게 작동하게할까요?

+0

보기 전체 오류 추적 – inoks

+0

당신이 해봤 작동하지 않음 서버 쪽에서 값을 인쇄합니다. Ajax를 통해 제출되는 가치를 확인 하시겠습니까? –

+0

아니, 어떻게합니까? 나는 초보자 다. – user1896790

답변

2

내가이, 일을 생각이

$('.deletebutton').click(function(){ 
    id = $(this).attr('data-id'); 
    $.ajax(function(){ 
     type:"POST", 
     url :"/your_url/", 
     data:{ 
       'id'=id, 
     } 
    }).done(function(result){ 
     alert('your json object result render by view :'+result) 
    }) 

시도하고 난 와트는 즉의 $ ('#의 simple_delete')에서 일을 얻을 didnt는()을 클릭합니다.; 당신이보기에 그

에 대해 설명해주십시오 수

obj = Model1.objects.get(id = simple_id) 
model2.objects.filter(model3__id = id3).delete() 

난 두 줄에 그리고 만약 단지 분할 한 줄 쿼리 .select_related 사용()

+0

이것은 이것을 달성하는 올바른 방법이다. 나는 단지 약간을 추가하기를 원한다. 삭제보기에 비례하여 urls.py 파일에 따라 "/ your_url /"을 변경해야한다. 또한 해당 url (내가 가정)이 "/ delete/ /"과 비슷한 경우 빈 데이터 사전 (data : {})을 전달할 수 있습니다.이 url은 이미 url에 simple_id가 있고 보기가 이것을 받아들이도록 구성되어 나타납니다.) –

+0

네가 맞아 ..! – kartheek

+0

대단히 감사합니다. – user1896790