Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10.5 Client Side Cookies `<p>visits: {{ visits }}</p> can't work #44

Open
shawshanks opened this issue Nov 9, 2016 · 5 comments
Open

Comments

@shawshanks
Copy link

shawshanks commented Nov 9, 2016

When I finished 10.5 section and run the server, my Firefox didn't show the number of times of visits on the screen. It just displayed visits:. In other words, I couldn't see the value of {{ visits }} .

While I checked my browser's cookie, it had the value of visists andlast_visit.

The problem confused me. Who can tell me why? I will be appreciated that .

@leifos
Copy link
Collaborator

leifos commented Nov 9, 2016

Can you check your spelling of visit.. you have:

visits (in your template)

and
visists (in your browser)

Maybe in your view you saw the cookie as “visists” and not “visits”

L

On 9 Nov 2016, at 12:23, yamei notifications@github.com wrote:

When I finished 10.5 section and opened run the server, my Firefox didn't show the number of times of visits on the screen. It just displayed visits:. In other words, I couldn't see the value of {{ visits }} .

While I checked my browser's cookie, it had the value of visists andlast_visit.

The problem confused me. Who can tell me why? I will be appreciated that .


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub #44, or mute the thread https://github.com/notifications/unsubscribe-auth/AB02B6XSoLzZVoHnHq8wC3Ku5mkCmF0nks5q8bs6gaJpZM4KtekA.

@shawshanks
Copy link
Author

shawshanks commented Nov 9, 2016

@leifos Very thank you. But it's the typo of this Issue rather than code and I had corrected it.

Here is what I did next:

Just now I finished 10.6 Session Data. According to the tutorial, I edited views and cleared my browser's cookie entirely. And then I run the server, the browser got the correct value of visits. During the process, I didn't change the template of index.html.

After that, I carefully modified my view.py and made it returned to section 10.5 Client Side Cookies . But it also didn't work (as same as last time). My code is as follows:

def visitor_cookie_handler(request, response):
    visits = int(request.COOKIES.get('visits', '1'))

    last_visit_cookie = request.COOKIES.get('last_visit', str(datetime.now()))
    last_visit_time = datetime.strptime(last_visit_cookie[:-7], '%Y-%m-%d %H:%M:%S')

    # If it's been more than a day since the last visit..
    if (datetime.now() - last_visit_time).seconds > 1:
        visits = visits + 1
        # update the last visit cookie now that we have updated the count
        response.set_cookie('last_visit', str(datetime.now()))
    else:
        visits = 1
        # set the last visit cookie
        response.set_cookie('last_visit', last_visit_cookie)

    # Update/set the visits cookie
    response.set_cookie('visits', visits)


def index(request):
    category_list = Category.objects.order_by('-likes')[:5]
    page_list = Page.objects.order_by('-views')[:5]
    context_dict = {'categories': category_list, 'pages': page_list}

    response = render(request, 'rango/index.html', context_dict)
    visitor_cookie_handler(request, response)
    return response
    <p>Visits: {{ visits }}</p>
    <p>last_visit: {{ last_visit }}</p>

@leifos
Copy link
Collaborator

leifos commented Nov 15, 2016

Hmm.. I suspect that the visitor_cookie_handler() method needs to return the response object to index(), and then index needs to return that.

@maxwelld90
Copy link
Collaborator

Has this been resolved? What action should we take here?

@NinjaOnRails
Copy link

Has anyone fixed this? I got mine to work, but as soon as I sign out and sign back in, the counter starts from 1 again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants