Как сделать перенаправление после добавления/редактирования/удаления в django

Когда я пытаюсь перенаправить после операции добавления/редактирования/удаления, я перенаправляюсь на нужную мне страницу, но не могу увидеть существующие данные, но после нажатия на url в браузере и ввода или перехода на другую страницу и возврата на эту, данные отображаются. Позвольте мне поделиться ссылкой на видео об удалении записей. - https://drive.google.com/file/d/1Qyt_gxFoBe74DH_2rLbme9PD58Ll1z3I/view?usp=sharing

и вот код удаления тоже.

views.py

def deleteuser(request, id):
    # user = get_object_or_404(AddContact, id = id)
    user = AddContact.objects.filter(id=id).delete()
    context = {
        'user' : user
    }
    return render (request, "adduser.html", context)

URL.py

path('deleteuser/<id>', views.deleteuser, name="deleteuser"),

html кнопка

<a href="/deleteuser/{{vr.id}}" class="btn btn-danger" data-target="success-modal-delete"><span class="fa fa-trash"></span> Delete</a>

Насколько я могу судить, даже в этом видео... Вы пытаетесь просмотреть удаленные данные. Вы нажимаете кнопку delete, которая удаляет все instance из набора запросов, возвращенных id, а затем, по сути, возвращает None.

Возможно, вы захотите после удаления пользователя получить свежий набор запросов к контекстному словарю с оставшимися пользователями. Например:

def deleteuser(request, id):
     d_user = get_object_or_404(AddContact, id=id)  # uncomment here...
     
     # if object returned then delete it
     if d_user:
          d_user.delete()

     # Retreiving the remaining users after deleting the above
     users = AddContact.objects.all()

     context = {
         'users' : users
     }
     return render (request, "adduser.html", context)

Идеально, это должно сработать.

В качестве рекомендуемого, возможно, следует использовать:

context = {
    'user' : user
}

<a href="{% url 'deleteuser' vr.id %}" class="btn btn-danger" data-target="success-modal-delete"><span class="fa fa-trash"></span> Delete</a>

Даже если то, что у вас есть, все еще работает.

Обновления

Убедитесь, что имя queryset, которое вы передаете отсюда ( представление удаления), совпадает с тем, которое вы передаете с начального этапа ( представление добавления). Таким образом, если в add view вы передали:

context = {
    'contacts' : contacts  # -> the queryset name
}
return render (request, "adduser.html", context)

Убедитесь, что это то же самое для delete view:

context = {
    'contacts' : contacts  # -> the queryset name
}
return render (request, "adduser.html", context)
Вернуться на верх