# Django Views
# Typical Imports
The type of imports you need
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render, redirect
from django.conf import settings as app_settings
from django.views import View
from .forms import *
from .models import *
from .functions import *
from django.contrib import messages
from django.contrib.auth.models import User
# User Passes test decorator
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import user_passes_test
def anonymous_required(function=None, redirect_url=None):
   if not redirect_url:
       redirect_url = 'dashboard'
   actual_decorator = user_passes_test(
       lambda u: u.is_anonymous,
       login_url=redirect_url
   )
   if function:
       return actual_decorator(function)
   return actual_decorator
#using the anonymous required decorator
@anonymous_required
def login(request):
  ## REst of the code
#using the long-required decorator
@login_required
def logout(request):
  auth.logout(request)
  return redirect('login')
# Typical Route with form
@login_required
@pass_another_test
@pass_test3
def someView(request):
    modelss = Model.objects.filter(variable=variable)
    context = {}
    context['models'] = models
    if request.method == 'GET':
        form  = ModelForm()
        context['form'] = form
        return render(request, 'app/models-view.html', context)
    if request.method == 'POST':
        form  =  ModelForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.extraVariable = extraVariable
            obj.save()
            messages.success(request, "Model Updated Succesfully")
            return redirect('models-view')
        else:
            context['form'] = form
            messages.error(request,"Problem processing your request")
            return render(request, 'app/models-view.html', context)
    return render(request, 'app/models-view.html', context)