I have a 2 buttons in my website - 1. Edit entry 2. Delete Entry. The problem is, after I click Confirm for the deleting or editing, the page refreshes and get all the new information but it loads the page from the beginning (Upper side of the page)
Since my page is very long with a lot of entries.... I want that after I click "confirm" it will redirect the user to the same spot he clicked in the page so he wouldn't need to roll the mouse to go down the page again and again..
Anyone knows?
views.py -
class HomeView(TemplateView):
template_name = 'serverlist.html'
def get(self, request):
form = HomeForm()
query = request.GET.get("q")
posts = serverlist.objects.all()
forms = {}
if query:
posts = serverlist.objects.filter(Q(ServerName__icontains=query) | Q(Owner__icontains=query) | Q(Project__icontains=query) | Q(Description__icontains=query) | Q(IP__icontains=query) | Q(ILO__icontains=query) | Q(Rack__icontains=query))
else:
posts = serverlist.objects.all()
for post in posts:
forms[post.id] = HomeForm(instance=post)
args = {'form' : form,'forms': forms, 'posts' : posts}
return render(request, self.template_name,args)
def post(self,request):
form = HomeForm(request.POST)
posts = serverlist.objects.all()
forms = {}
if form.is_valid(): # Checks if validation of the forms passed
post = form.save(commit=False)
post.save()
messages.success(request,'{0} has been added successfully!'.format(post.ServerName))
return redirect('serverlist')
messages.error(request,'Servername is required, please refresh the page and try again.')
for post in posts:
forms[post.id] = HomeForm(instance=post)
args = {'form' : form, 'forms': forms, 'posts' : posts}
return render(request, self.template_name,args)
class PostDelete(SuccessMessageMixin,DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist')
success_message = "The server has been deleted successfully!"
def delete(self, request, *args, **kwargs):
messages.warning(self.request, self.success_message)
return super(PostDelete, self).delete(request, *args, **kwargs)
class PostEdit(SuccessMessageMixin,UpdateView):
template_name = 'serverlist.html'
model = serverlist
form_class = HomeForm
success_url = reverse_lazy('serverlist')
success_message = "%(ServerName)s has been edited successfully!"
def edit(self, request, *args, **kwargs):
messages.warning(self.request, self.success_message)
return super(PostEdit, self).edit(request, *args, **kwargs)
Aucun commentaire:
Enregistrer un commentaire