Friday, May 29, 2020

Re: Customizing Django built-in views such as LoginView

I would choose the second option and define a LoginView subclass in the views.py module.
The outcome is exactly the same, but I'd prefer to have my views all defined in views.py file.
Adding too much logic in the urls.py module IMHO is not a good idea and it makes the view less extendable in the future.

Augusto
www.guguweb.com

On Friday, May 29, 2020 at 2:31:17 PM UTC+2, Uri wrote:
Django users,

Which way is preferred to customize Django built-in views such as LoginView:

- Define a line in urls.py:

path(route='login/', view=views.django_auth_views.LoginView.as_view(template_name='accounts/login.html', authentication_form=forms.LoginForm, extra_context=None, redirect_authenticated_user=True), name='login'),

Where, views.py contains:
from django.contrib.auth import views as django_auth_views

Or:

In views.py, define a new class:

class LoginView(django_auth_views.LoginView):
template_name = 'accounts/login.html'
authentication_form = LoginForm
extra_context = None
redirect_authenticated_user = True

And then, define in urls.py:
path(route='login/', view=views.LoginView.as_view(), name='login'),

Will both ways work the same, and is one of them preferred from a software engineering / programming perspective?

Thanks,
Uri.
אורי

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/8b10a5cf-5f33-4035-98b2-54ac0b84f25e%40googlegroups.com.

No comments:

Post a Comment