Reputation:
views.py
class CreateProfile(LoginRequiredMixin, CreateView):
login_url = '/accounts/login/'
template_name = 'profile/new_profile.html'
model = Profile
fields = ['full_name','profile_pic','title','summary']
def user_redirect(request):
if request.user.is_authenticated():
return render(request, '#redirect to some page')
if the user is already logged in he should not be able to access the 'profile/create' url.
Upvotes: 0
Views: 108
Reputation: 1592
You can decorate your signup or your login view with the following decorator...
from django.http import HttpResponseRedirect
def anonymous_required( view_function, redirect_to = None ):
return AnonymousRequired( view_function, redirect_to )
class AnonymousRequired( object ):
def __init__( self, view_function, redirect_to ):
if redirect_to is None:
from django.conf import settings
redirect_to = settings.LOGIN_REDIRECT_URL
self.view_function = view_function
self.redirect_to = redirect_to
def __call__( self, request, *args, **kwargs ):
if request.user is not None and request.user.is_authenticated():
return HttpResponseRedirect( self.redirect_to )
return self.view_function( request, *args, **kwargs )
Upvotes: 2