misOrz

IT Tech & Life

How to check (in template) if user belongs to a group

  • You need a custom template tag:

from django import template

register = template.Library() 

@register.filter(name='has_group') 
def has_group(user, group_name):
    return user.groups.filter(name=group_name).exists() 

  • In your template:

{% if request.user|has_group:"mygroup" %} 
    <p>User belongs to my group 
{% else %}
    <p>User doesn't belong to mygroup</p>
{% endif %}
Reference: https://stackoverflow.com/questions/34571880/how-to-check-in-template-if-user-belongs-to-a-group



Django session variable in JavaScript

In Views.py Add:

class SessionVarView(TemplateView):
    permission_classes = [permissions.IsAuthenticated]    
    @csrf_exempt
    def get(selfrequest, *args, **kwargs):
        print(request)
        return HttpResponse(request.session[kwargs['key']])


In Urls.py Add:

    re_path(r'^session/(?P<key>[^/]+)$'views.SessionVarView.as_view(), name='session-var'),


Then you could get it from JS via http://127.0.0.1/session/key_name_here or something similar.


Reference : 

a) : https://stackoverflow.com/questions/35169519/django-session-variable-in-javascript

b) : https://www.edureka.co/community/79598/how-to-update-django-session-variable-in-javascript

c) : URL dispatcher - https://docs.djangoproject.com/en/3.1/topics/http/urls/






In Django project run SSL (runserver)

1. In your DJ Venv install extensions

  • django-extensions
  • django-werkzeug-debugger-runserver
  • pyOpenSSL
pip install django-extensions 
pip install django-werkzeug-debugger-runserver 
pip install pyOpenSSL

2. Config Setting.py

  • Add  'werkzeug_debugger_runserver'、'django_extensions' in below

INSTALLED_APPS = [
................
    'rest_framework',
    'werkzeug_debugger_runserver',
    'django_extensions',
]

3. Run & Test

  • python manage.py runserver_plus --cert server.crt 127.0.0.1:8000
  • In browser Test : https://127.0.0.1:8000