users package

The app that handles users.

users.get_user_display(user)[source]

Display the name of the user.

Parameters

user (User) – A User model instance.

Return type

str

Returns

The user’s full name if available, otherwise the username.

users.default_app_config = 'users.apps.UsersConfig'

The config class of the app.

Submodules

users.adapters module

Custom adapters for django-allauth.

class users.adapters.AccountAdapter(request=None)[source]

Bases: allauth.account.adapter.DefaultAccountAdapter

Adapter for user accounts.

get_login_redirect_url(request)[source]

Return the URL to redirect to after a successful login.

Parameters

request (HttpRequest) – The original request.

Return type

str

Returns

The URL of the redirect.

get_logout_redirect_url(request)[source]

Return the URL to redirect to after a successful logout.

Parameters

request (HttpRequest) – The original request.

Return type

str

Returns

The URL of the redirect.

class users.adapters.SocialAccountAdapter(request=None)[source]

Bases: allauth.socialaccount.adapter.DefaultSocialAccountAdapter

Adapter for OAuth accounts.

get_connect_redirect_url(request, social_account)[source]

Return the URL to redirect to after a successful connection.

Parameters
  • request (HttpRequest) – The original request.

  • social_account (SocialAccount) – The connected OAuth account.

Return type

str

Returns

The URL of the redirect.

users.admin module

Admin models for the users app.

class users.admin.UserTypeFilter(request, params, model, model_admin)[source]

Bases: django.contrib.admin.filters.SimpleListFilter

Admin interface filter for user types.

title = 'type'

str – The title of the filter.

parameter_name = 'type'

str – The filter’s query parameter.

lookups(request, model_admin)[source]

Return a list of lookups for this filter.

The first element in each tuple is the value of the query parameter. The second element is the human-readable name for the option that will appear in the admin sidebar.

Parameters
  • request (HttpRequest) – The original request.

  • model_admin (Type[ModelAdmin]) – An admin model object.

Return type

List[Tuple[str, str]]

Returns

The following list of tuples:

[
    ('superuser', 'Superuser'),
    ('staff', 'Staff'),
    ('regular', 'Regular')
]

queryset(request, queryset)[source]

Return the filtered queryset based on the value provided in the query string.

Parameters
  • request (HttpRequest) – The original request.

  • queryset (QuerySet) – The original queryset.

Return type

QuerySet

Returns

A filtered queryset according to lookups().

class users.admin.User(*args, **kwargs)[source]

Bases: django.contrib.auth.models.User

django.contrib.auth.models.User proxy model.

exception DoesNotExist

Bases: django.contrib.auth.models.User.DoesNotExist

exception MultipleObjectsReturned

Bases: django.contrib.auth.models.User.MultipleObjectsReturned

class users.admin.UserAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

Admin model for User.

exclude = ('password', 'groups')
list_display = ('username', '_email', 'full_name', 'date_joined', 'is_active')
list_editable = ('is_active',)
search_fields = ('username', 'email', 'first_name', 'last_name')
list_filter = (<class 'MangAdventure.filters.boolean_filter.<locals>._BooleanFilter'>, <class 'users.admin.UserTypeFilter'>)
ordering = ('username',)
full_name(obj)[source]

Get the full name of the user.

Parameters

obj (User) – A User model instance.

Return type

str

Returns

The user’s full name.

has_add_permission(request)[source]

Return whether adding an User object is permitted.

Parameters

request (HttpRequest) – The original request.

Return type

bool

Returns

Always returns False.

class users.admin.OAuthApp(*args, **kwargs)[source]

Bases: allauth.socialaccount.models.SocialApp

allauth.socialaccount.models.SocialApp proxy model.

__str__()[source]

Return a string representing the object.

Return type

str

Returns

The name and provider of the app.

exception DoesNotExist

Bases: allauth.socialaccount.models.SocialApp.DoesNotExist

exception MultipleObjectsReturned

Bases: allauth.socialaccount.models.SocialApp.MultipleObjectsReturned

class users.admin.OAuthAppForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Admin form for OAuthApp.

class Meta[source]

Bases: object

model

alias of OAuthApp

fields = '__all__'
base_fields = {'client_id': <django.forms.fields.CharField object>, 'key': <django.forms.fields.CharField object>, 'name': <django.forms.fields.CharField object>, 'provider': <django.forms.fields.TypedChoiceField object>, 'secret': <django.forms.fields.CharField object>, 'sites': <django.forms.models.ModelMultipleChoiceField object>}
declared_fields = {}
class users.admin.OAuthAppAdmin(model, admin_site)[source]

Bases: allauth.socialaccount.admin.SocialAppAdmin

Admin model for OAuthApp.

form

alias of OAuthAppForm

list_display = ('name', '_provider', 'client_id')
radio_fields = {'provider': 1}

users.apps module

App configuration.

class users.apps.UsersConfig(app_name, app_module)[source]

Bases: django.apps.config.AppConfig

Configuration for the users app.

name = 'users'

str – The name of the app.

ready()[source]

Register the receivers when the app is ready.

users.feeds module

class users.feeds.BookmarksRSS[source]

Bases: django.contrib.syndication.views.Feed

RSS feed for a user’s bookmarks.

ttl = 600
author_name = 'MangAdventure'
title = 'Bookmarks - MangAdventure'
description = 'Updates when a bookmarked series has a new release'
__call__(request, *args, **kwargs)[source]

Get the HTTP response of the feed.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

A 401 response if the token is missing.
A 403 response if the provided token is invalid.
A 200 response with the bookmarks feed otherwise.

items(obj)[source]

Get an iterable of the feed’s items.

Parameters

obj (User) – The object of the feed.

Return type

Iterable[Chapter]

Returns

An iterable of Chapter objects.

item_description(item)[source]

Get the description of the item.

Parameters

item (Chapter) – A Chapter object.

Return type

str

Returns

The Chapter object as a string.

item_pubdate(item)[source]

Get the publication date of the item.

Parameters

item (Chapter) – A Chapter object.

Return type

datetime

Returns

The date the chapter was published.

item_updateddate(item)[source]

Get the update date of the item.

Parameters

item (Chapter) – A Chapter object.

Return type

datetime

Returns

The date the chapter was modified.

class users.feeds.BookmarksAtom[source]

Bases: users.feeds.BookmarksRSS

Atom feed for a user’s bookmarks.

feed_type

alias of django.utils.feedgenerator.Atom1Feed

subtitle = 'Updates when a bookmarked series has a new release'

users.forms module

Form models for the users app.

class users.forms.UserProfileForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Form used for editing a :class:UserProfile model.

email

object – The user’s e-mail address.

curr_password

object – The current password of the user.

new_password1

object – The new password of the user.

new_password2

object – The new password of the user again.

username

object – The username of the user.

first_name

object – The user’s first name.

last_name

object – The user’s last name.

bio

object – The user’s bio.

avatar

object – The user’s avatar.

clean_username()[source]

Validate the chosen username.

Return type

str

Returns

The username if valid.

Raises

ValidationError – If the username is taken.

clean_new_password2()[source]

Validate the chosen password.

Return type

str

Returns

The new password if valid.

Raises

ValidationError – If the passwords don’t match.

clean_curr_password()[source]

Validate the current password.

Return type

str

Returns

The current password if valid.

Raises

ValidationError – If the password is wrong.

save(commit=True)[source]

Save the changes to the UserProfile.

Parameters

commit (bool) – Controls whether the changes should be committed to the database.

Return type

UserProfile

Returns

The updated UserProfile object.

class Meta[source]

Bases: object

model

alias of users.models.UserProfile

fields = ('email', 'new_password1', 'new_password2', 'username', 'first_name', 'last_name', 'bio', 'avatar', 'curr_password')
base_fields = {'avatar': <django.forms.fields.ImageField object>, 'bio': <django.forms.fields.CharField object>, 'curr_password': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'first_name': <django.forms.fields.CharField object>, 'last_name': <django.forms.fields.CharField object>, 'new_password1': <django.forms.fields.CharField object>, 'new_password2': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}
declared_fields = {'avatar': <django.forms.fields.ImageField object>, 'bio': <django.forms.fields.CharField object>, 'curr_password': <django.forms.fields.CharField object>, 'email': <django.forms.fields.EmailField object>, 'first_name': <django.forms.fields.CharField object>, 'last_name': <django.forms.fields.CharField object>, 'new_password1': <django.forms.fields.CharField object>, 'new_password2': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}

users.models module

Database models for the users app.

class users.models.Bookmark(*args, **kwargs)[source]

Bases: django.db.models.base.Model

A model representing a bookmark.

series

ForeignKey – The series this bookmark belongs to.

user

ForeignKey – The user this bookmark belongs to.

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

objects = <django.db.models.manager.Manager object>
class users.models.UserProfile(*args, **kwargs)[source]

Bases: django.db.models.base.Model

A model representing a user’s profile.

TODO

Add links and let users hide their e-mail.

user

OneToOneField – The user this profile belongs to.

bio

TextField – The bio of the user.

avatar

ImageField – The avatar of the user.

token

CharField – The token of the user. Used in the bookmarks feed.

save(*args, **kwargs)[source]

Save the current instance.

get_directory()[source]

Get the storage directory of the object.

Return type

PurePath

Returns

A path relative to MEDIA_ROOT.

__str__()[source]

Return a string representing the object.

Return type

str

Returns

The user as a string.

__hash__()[source]

Return the hash of the object.

Return type

int

Returns

An integer hash value.

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

objects = <django.db.models.manager.Manager object>

users.receivers module

Signal receivers for the users app.

users.receivers.update_user_email(sender, request, email_address, **kwargs)[source]

Receive a signal when an email address is updated and confirmed.

When the signal is received, the new email_address is made primary and the old email addresses are deleted.

Parameters
  • sender (Type[EmailAddress]) – The model class that sent the signal.

  • request (HttpRequest) – The original request.

  • email_address (EmailAddress) – The new email address.

users.urls module

The URLconf of the users app.

users.urls.urlpatterns = [<URLPattern '' [name='user_profile']>, <URLPattern 'edit/' [name='user_edit']>, <URLPattern 'logout/' [name='account_logout']>, <URLPattern 'bookmarks/' [name='user_bookmarks']>, <URLPattern 'bookmarks.atom' [name='user_bookmarks.atom']>, <URLPattern 'bookmarks.rss' [name='user_bookmarks.rss']>, <URLResolver <module 'allauth.account.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/envs/v0.6.6/lib/python3.7/site-packages/allauth/account/urls.py'> (None:None) ''>, <URLResolver <module 'allauth.socialaccount.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/envs/v0.6.6/lib/python3.7/site-packages/allauth/socialaccount/urls.py'> (None:None) 'social/'>, <URLResolver <URLPattern list> (None:None) 'reddit/'>, <URLResolver <URLPattern list> (None:None) 'twitter/'>, <URLResolver <URLPattern list> (None:None) 'google/'>, <URLResolver <URLPattern list> (None:None) 'discord/'>]

The URL patterns of the users app.

users.views module

The views of the users app.

users.views.profile(request)[source]

View that serves the profile page of a user. A UserProfile will be created if it doesn’t exist.

It serves the logged in user’s profile by default, but accepts an id query parameter to view an arbitrary user’s profile.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

A response with the rendered profile.html template.

Raises

Http404 – If there is no user with the specified id.

class users.views.EditUser(**kwargs)[source]

Bases: django.views.generic.base.TemplateView

View that serves the edit form for a user’s profile.

template_name = 'edit_user.html'

str – The template that this view will render.

setup(request, *args, **kwargs)[source]

Initialize attributes shared by all view methods.

A UserProfile will be created if the request user does not yet have one.

Parameters

request (HttpRequest) – The original request.

get(request, *args, **kwargs)[source]

Handle GET requests.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

A response with the rendered template.

post(request, *args, **kwargs)[source]

Handle POST requests.

If the user has changed their e-mail, a confirmation mail will be sent.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

A response with the rendered template.

dispatch(*args, **kwargs)
class users.views.Bookmarks(**kwargs)[source]

Bases: django.views.generic.base.TemplateView

View that serves a user’s bookmarks page.

template_name = 'bookmarks.html'

str – The template that this view will render.

get(request, *args, **kwargs)[source]

Handle GET requests.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

A response with the rendered template.

post(request, *args, **kwargs)[source]

Handle POST requests.

If a bookmark exists, it will be deleted. If not, it will be created.

Parameters

request (HttpRequest) – The original request.

Return type

HttpResponse

Returns

An empty 201 response when creating a bookmark.
An empty 204 response when deleting a bookmark.

dispatch(*args, **kwargs)
class users.views.Logout(**kwargs)[source]

Bases: allauth.account.views.LogoutView

A LogoutView that disallows GET requests.

http_method_names = ['post', 'head', 'options']

List – The allowed HTTP methods.

dispatch(*args, **kwargs)