Как получить проверенные объекты в django виде с ajax? - PullRequest
0 голосов
/ 11 марта 2020

Я очень новичок в ajax. Здесь у меня есть форма django, а внутри формы есть флажок группы форм. Что я хочу здесь, это из флажка, если пользователь проверяет некоторый пользовательский объект, я хочу получить его в представлении django непосредственно перед отправкой формы. И если пользователь снимает галочку с этого, он также должен быть удален из вида django. Как я могу это сделать?

После отправки формы она работает нормально, но я хочу получить проверенного пользователя до отправки формы. Так что в этом случае потребуется ajax. Но я очень новичок в ajax, поэтому я застрял здесь.

template

 <div class="form-group">
        <div class="checkbox">
          <input class="checkbox1" name="users" type="checkbox" value="{{user.pk}}"
                       id="user{{user.pk}}"/>
                <label for="user{{user.pk}}"></label>
        </div>
      </div>

jquery

 <script>
   $(function(){
    var checked_lists = [];
    $(".checkbox1:checked").each(function() {
        checked_list.push(this.value);
    });
     $.ajax({
        url: "{% url 'my_url' %}",
         data:{
        checked_Lists: checked_list,
    }
        }
      });
   });
</script>

views

 print(self.request.POST.getlist('checked_lists'))

1 Ответ

0 голосов
/ 11 марта 2020

В вашем случае вам нужно передать checked_list[] javascript список для просмотра, поэтому нужно ajax для этого

  • и обработать ajax запрос основание на checkbox change событие
<script>
   $('.checkbox1').change(function(){ // checkbox1 change event 
    var checked_lists = [];
    $(".checkbox1:checked").each(function() {
        checked_list.push(this.value);
    });
    var formdata = new FormData();
    $.ajax({
            formdata.append('checked_list',checked_list)
            formdata.append('csrfmiddlewaretoken',$('input[type=hidden]').val());
            $.ajax({
                url:"/profile_upload", //replace with you url 
                method:'POST',
                data:formdata,
                enctype: 'application/x-www-form-urlencoded',
                processData:false,
                contentType:false,
                success:function(data){

                   alert("Display return data"+data)
                },
                error:function(error){
                    alert(error.error)
                }
            });
    });
   });
</script>

views.py: вы определяете базу просмотра в своей логике c

def <view-name>(request):
    if request.method=='POST':
       user_list = request.getlist('checked_list')
       return JsonResponse(status=200,data={'data':'success'})
   else:
       return JsonResponse(status=203,data={'error':'unauthorize request.!!'})


Если вы используете почтовый запрос для определения csrf_token, передайте их, если ваш код скрипта на одной странице formdata.append('csrfmiddlewaretoken',{% csrf_token %}); проходит по этим ссылкам, и выполните

Ajax Запрос данных Sumbit

если вы получите ошибку, сообщите мне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...