2π
First of all thanks for all the help.
I found the solution thanks to all of you π
Turns out i needed to pass the request object in every view and needed to put it as an argument in my template tag.
Solution code:
from django import template
from progmatic.cms.models import navigation, navigation_item
from django.template.defaultfilters import slugify
from django.shortcuts import render_to_response
from django.template import RequestContext
from itertools import chain
register = template.Library()
""" Gets the menu items you have entered in the admin.
No arguments are accepted"""
def get_hoofd_menu( request ):
menu = navigation.objects.get( slug = "hoofd-menu");
mcontent = navigation_item.objects.filter( parent_menu = menu, login_required = False);
if request.user.is_authenticated and not request.user.is_anonymous():
mmcontent = navigation_item.objects.filter( parent_menu = menu, login_required = True )
else:
mmcontent = ""
final_menu = list(chain(mcontent,mmcontent))
return { 'mcontent' : final_menu }
#return render_to_response('menu.html', { 'mcontent' : mcontent } )
def get_sub_menu( request, menu ):
menu = navigation.objects.get( slug = slugify( menu ) )
mcontent = navigation_item.objects.filter( parent_menu = menu, login_required = False )
if request.user.is_authenticated and not request.user.is_anonymous():
mmcontent = navigation_item.objects.filter( parent_menu = menu, login_required = True )
else:
mmcontent = ""
final_menu = list(chain(mcontent,mmcontent))
return { 'mcontent' : final_menu }
#return render_to_response('menu.html', { 'mcontent' : mcontent })
register.inclusion_tag('menu.html')( get_hoofd_menu )
register.inclusion_tag('menu.html')( get_sub_menu )
Thanks for al the help π
3π
Do you have django.core.context_processors.auth in TEMPLATE_CONTEXT_PROCESSORS setting?
Another thing to try is your render_to_reponse syntax. according to the docs, it should be
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
- [Django]-RawPostDataException: You cannot access body after reading from request's data stream
- [Django]-Is this how django does Single Table Inheritance?
- [Django]-Reading foreign key ref in save() override raises RelatedObjectDoesNotExist
- [Django]-Testing Django project, how can I avoid Errno 10054?
- [Django]-Is it possible to show progress bar of django celery task?
2π
Do you have any other context processors registered? Do they set user
?
I recommend running under the dev server and do something like:
rc = RequestContext(request, ... params ...)
user = rc.get('user')
print user.username, user.is_authenticated()
If you donβt get the values you expect, then you need to dig deeper. The following should iterate through all context dicts and show you which one(s) contain a value for βuserβ. The first one will be what the template sees.
rc = RequestContext(request, ... params ...)
for d in rc:
print d
- [Django]-Django: environment variable for SECRET_KEY not working
- [Django]-How to make non-editable fields appear when creating objects in Django admin?
- [Django]-Serialization to JSON two querysets in Django
- [Django]-Error installing a django project AttrributeError: module 'collections' has no attribute 'Iterator'
- [Django]-Search multiple fields of django model without 3rd party app
- [Django]-How do I pass custom variable values to the django admin interface?
- [Django]-Django Queryset Iterator for Ordered queryset
0π
where is the actual code that checks if the user is authenticated? If you check for it in the template, you should provide some indivcation when passing parameters from the view to the template.
For me it works when I do this at the top:
from django.contrib.auth.decorators import login_required
and decorate all the views where itβs important, e.g:
@login_required
def get_hoofd_menu( ):
itβs all mentioned in the overview (a little above halfway through)
- [Django]-IntegrityError with last_login field in Django 1.8
- [Django]-Docker, Django and Selenium β Selenium unable to connect
- [Django]-Django Multi-Table-Inheritance and Left Outer Joins