def
is_active
(
self
):
return
True
That’s what I call a minimal user model! One field, none of this firstname/lastname/
username nonsense, and, pointedly, no password! Somebody else’s problem! But, again,
you can see that this code isn’t ready for production, from the commented-out lines to
the hardcoded harry email address.
At this point I’d recommend a little browse through the
Django auth documentation.
Aside from that, you need a model manager for the user:
accounts/models.py (ch15l006).
from
django.contrib.auth.models
import
AbstractBaseUser
,
BaseUserManager
,
PermissionsMixin
class
ListUserManager
(
BaseUserManager
):
def
create_user
(
self
,
):
ListUser
.
objects
.
create
(
=
)
def
create_superuser
(
self
,
,
password
):
self
.
create_user
(
)
A logout view:
accounts/views.py (ch15l007).
from
django.contrib.auth
import
login
as
auth_login
,
logout
as
auth_logout
[
...
]
def
logout
(
request
):
auth_logout
(
request
)
return
redirect
(
'/'
)
Some URLs for our two views:
superlists/urls.py (ch15l008).
urlpatterns
=
patterns
(
''
,
url
(
r'^$'
,
'lists.views.home_page'
,
name
=
'home'
),
url
(
r'^lists/'
,
include
(
'lists.urls'
)),
url
(
r'^accounts/'
,
include
(
'accounts.urls'
)),
# url(r'^admin/', include(admin.site.urls)),
)
and
accounts/urls.py.
from
django.conf.urls
import
patterns
,
url
urlpatterns
=
patterns
(
''
,
url
(
r'^login$'
,
'accounts.views.login'
,
name
=
'login'
),
url
(
r'^logout$'
,
'accounts.views.logout'
,
name
=
'logout'
),
)
Exploratory Coding, aka “Spiking”
|
247