Why don’t you use fetch api? Its simple. Once you get the response from the server, you can use InsertAdjacentHtml.

 

Sent from Mail for Windows 10

 

From: Motaz Hejaze
Sent: 18 May 2020 07:34
To: Django users
Subject: Re: how to write Ajax for a Like button in Django

 

The button is submitted but without page refresh

 

On Mon, 18 May 2020, 3:53 am Ahmed Khairy, <ahmed.heshamel...@gmail.com> wrote:

Hi Motaz,

 

When I added your code it disabled the function of the button nothing happened

On Sunday, May 17, 2020 at 9:30:38 PM UTC-4, Motaz Hejaze wrote:

In your like button form in your templates , 
try this :


<form _onsubmit_="return false">
</form>
 
i don't think you need ajax for this , but if you still need it let us know

 

On Mon, 18 May 2020, 2:26 am Gabriel Araya Garcia, <gabriela...@gmail.com> wrote:

Hi Ahmed, I was looking for that during several months and I have found examples than not run, and therefore I`ve get one conclution: "It`s not posible to get that functionality in Django". No one could demostrate with example code.

If you find something, please send me the code.

 

Thanks

 

  

Gabriel Araya Garcia

GMI - Desarrollo de Sistemas Informáticos

 

 

El dom., 17 may. 2020 a las 20:15, Ahmed Khairy (<ahmed.he...@gmail.com>) escribió:

Hi all,

 

I need some help writing the ajax for a like button instead of refreshing every time a like is posted 

 

here is the template: 

 

                        <form action="{% url 'score:like_post' post.pk %}" method='POST'>

                            {% csrf_token %}

                    {% if user.is_authenticated %}

                            {% if liked %}

                                <button type='submit' name='post_id' class"btn btn-danger btn-sm" value="{{post.id}}"> Unlike </button>                            

                            {% else %}

                                <button type='submit' name='post_id' class"btn btn-primary btn-sm" value="{{post.id}}"> Like </button>                            

                            {% endif  %}

                    {% else %}

                    <small><a href="{% url 'login' %}"> Login</a> to Like </small>

                            <strong>{{total_likes}} Likes </strong>

                    {% endif %}

                        </form>     

 

Here is the urls:

    path('like/<int:pk>', LikeView, name='like_post'),

 

here is the views:

def LikeView(requestpk):

    post = get_object_or_404(Post, id=request.POST.get('post_id'))

    like = False

    if post.likes.filter(id=request.user.id).exists():

        post.likes.remove(request.user)

        like = False

 

    else:

        post.likes.add(request.user)

        like = True

    return redirect('score:post-detail'pk=pk)

 

class PostDetailView(DetailView):

    model = Post

    template_name = "post_detail.html"

 

    def get_context_data(self*args**kwargs):

        context = super(PostDetailView, self).get_context_data()

 

        stuff = get_object_or_404(Post, id=self.kwargs['pk'])

        total_likes = stuff.total_likes()

 

        liked = False

        if stuff.likes.filter(id=self.request.user.id).exists():

            liked = True

 

        context["total_likes"= total_likes

        context["liked"= liked

        return context

 

 

 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/00707977-9b68-4329-a13d-adb9ab7b8813%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAKVvSDCuegzvsZQ_Rfms3yMA_EO914T0yJ_n929mnx7bNDodUA%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/76f6356b-17bc-4697-b6cf-966f01e9217f%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAHV4E-fDsKvr77YCUwjttDQJ7nx6f9%2Bj0ZZCByUa1Ygr%3DOoY1Q%40mail.gmail.com.

 


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5ec22272.1c69fb81.dac63.72cc%40mx.google.com.

Reply via email to