mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-08-15 01:14:53 +03:00
Consistent Jinja tag conditions
This commit is contained in:
parent
466a9d3c24
commit
933d228607
|
@ -315,12 +315,12 @@ ACCOUNT_ALLOW_REGISTRATION = env.bool("DJANGO_ACCOUNT_ALLOW_REGISTRATION", True)
|
|||
ACCOUNT_AUTHENTICATION_METHOD = "{{cookiecutter.username_type}}"
|
||||
# https://django-allauth.readthedocs.io/en/latest/configuration.html
|
||||
ACCOUNT_EMAIL_REQUIRED = True
|
||||
{% if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
# https://django-allauth.readthedocs.io/en/latest/configuration.html
|
||||
ACCOUNT_USERNAME_REQUIRED = False
|
||||
# https://django-allauth.readthedocs.io/en/latest/configuration.html
|
||||
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
|
||||
{% endif -%}
|
||||
{%- endif %}
|
||||
# https://django-allauth.readthedocs.io/en/latest/configuration.html
|
||||
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
|
||||
# https://django-allauth.readthedocs.io/en/latest/configuration.html
|
||||
|
|
|
@ -13,7 +13,7 @@ class UserAdmin(auth_admin.UserAdmin):
|
|||
form = UserAdminChangeForm
|
||||
add_form = UserAdminCreationForm
|
||||
fieldsets = (
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
(None, {"fields": ("email", "password")}),
|
||||
(_("Personal info"), {"fields": ("name",)}),
|
||||
{%- else %}
|
||||
|
@ -36,7 +36,7 @@ class UserAdmin(auth_admin.UserAdmin):
|
|||
)
|
||||
list_display = ["{{cookiecutter.username_type}}", "name", "is_superuser"]
|
||||
search_fields = ["name"]
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
ordering = ["id"]
|
||||
add_fieldsets = (
|
||||
(
|
||||
|
|
|
@ -129,7 +129,7 @@ class Migration(migrations.Migration):
|
|||
"abstract": False,
|
||||
},
|
||||
managers=[
|
||||
{% if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
("objects", {{cookiecutter.project_slug}}.users.models.UserManager()),
|
||||
{%- else %}
|
||||
("objects", django.contrib.auth.models.UserManager()),
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from django.contrib.auth.models import AbstractUser, UserManager as DjangoUserManager
|
||||
{%- else -%}
|
||||
{%- else %}
|
||||
from django.contrib.auth.models import AbstractUser
|
||||
{%- endif %}
|
||||
from django.db.models import CharField{%- if cookiecutter.username_type == "email" %}, EmailField{% endif %}
|
||||
from django.db.models import CharField{% if cookiecutter.username_type == "email" %}, EmailField{% endif %}
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
class UserManager(DjangoUserManager):
|
||||
def _create_user(self, email, password, **extra_fields):
|
||||
"""
|
||||
|
@ -49,14 +49,14 @@ class User(AbstractUser):
|
|||
|
||||
#: First and last name do not cover name patterns around the globe
|
||||
name = CharField(_("Name of User"), blank=True, max_length=255)
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
username = None # type: ignore
|
||||
email = EmailField(_("email address"), unique=True)
|
||||
{%- endif %}
|
||||
first_name = None # type: ignore
|
||||
last_name = None # type: ignore
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
USERNAME_FIELD = "email"
|
||||
REQUIRED_FIELDS = []
|
||||
|
||||
|
@ -70,7 +70,7 @@ class User(AbstractUser):
|
|||
str: URL for user detail.
|
||||
|
||||
"""
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
return reverse("users:detail", kwargs={"id": self.id})
|
||||
{%- else %}
|
||||
return reverse("users:detail", kwargs={"username": self.username})
|
||||
|
|
|
@ -22,7 +22,7 @@ class TestUserAdmin:
|
|||
response = admin_client.post(
|
||||
url,
|
||||
data={
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
"email": "new-admin@example.com",
|
||||
{%- else %}
|
||||
"username": "test",
|
||||
|
@ -32,14 +32,14 @@ class TestUserAdmin:
|
|||
},
|
||||
)
|
||||
assert response.status_code == 302
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
assert User.objects.filter(email="new-admin@example.com").exists()
|
||||
{%- else %}
|
||||
assert User.objects.filter(username="test").exists()
|
||||
{%- endif %}
|
||||
|
||||
def test_view_user(self, admin_client):
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
user = User.objects.get(email="admin@example.com")
|
||||
{%- else %}
|
||||
user = User.objects.get(username="admin")
|
||||
|
|
|
@ -2,7 +2,7 @@ from {{ cookiecutter.project_slug }}.users.models import User
|
|||
|
||||
|
||||
def test_user_get_absolute_url(user: User):
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
assert user.get_absolute_url() == f"/users/{user.pk}/"
|
||||
{%- else %}
|
||||
assert user.get_absolute_url() == f"/users/{user.username}/"
|
||||
|
|
|
@ -4,7 +4,7 @@ from {{ cookiecutter.project_slug }}.users.models import User
|
|||
|
||||
|
||||
def test_detail(user: User):
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
assert (
|
||||
reverse("users:detail", kwargs={"pk": user.pk})
|
||||
== f"/users/{user.pk}/"
|
||||
|
|
|
@ -39,7 +39,7 @@ class TestUserUpdateView:
|
|||
|
||||
view.request = request
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
assert view.get_success_url() == f"/users/{user.pk}/"
|
||||
{%- else %}
|
||||
assert view.get_success_url() == f"/users/{user.username}/"
|
||||
|
@ -83,7 +83,7 @@ class TestUserRedirectView:
|
|||
|
||||
view.request = request
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
assert view.get_redirect_url() == f"/users/{user.pk}/"
|
||||
{%- else %}
|
||||
assert view.get_redirect_url() == f"/users/{user.username}/"
|
||||
|
@ -95,7 +95,7 @@ class TestUserDetailView:
|
|||
request = rf.get("/fake-url/")
|
||||
request.user = UserFactory()
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
response = user_detail_view(request, pk=user.pk)
|
||||
{%- else %}
|
||||
response = user_detail_view(request, username=user.username)
|
||||
|
@ -107,7 +107,7 @@ class TestUserDetailView:
|
|||
request = rf.get("/fake-url/")
|
||||
request.user = AnonymousUser()
|
||||
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
response = user_detail_view(request, pk=user.pk)
|
||||
{%- else %}
|
||||
response = user_detail_view(request, username=user.username)
|
||||
|
|
|
@ -10,7 +10,7 @@ app_name = "users"
|
|||
urlpatterns = [
|
||||
path("~redirect/", view=user_redirect_view, name="redirect"),
|
||||
path("~update/", view=user_update_view, name="update"),
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
path("<int:pk>/", view=user_detail_view, name="detail"),
|
||||
{%- else %}
|
||||
path("<str:username>/", view=user_detail_view, name="detail"),
|
||||
|
|
|
@ -10,7 +10,7 @@ User = get_user_model()
|
|||
|
||||
class UserDetailView(LoginRequiredMixin, DetailView):
|
||||
model = User
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
slug_field = "id"
|
||||
slug_url_kwarg = "id"
|
||||
{%- else %}
|
||||
|
@ -44,7 +44,7 @@ class UserRedirectView(LoginRequiredMixin, RedirectView):
|
|||
permanent = False
|
||||
|
||||
def get_redirect_url(self):
|
||||
{%- if cookiecutter.username_type == "email" -%}
|
||||
{%- if cookiecutter.username_type == "email" %}
|
||||
return reverse("users:detail", kwargs={"pk": self.request.user.pk})
|
||||
{%- else %}
|
||||
return reverse("users:detail", kwargs={"username": self.request.user.username})
|
||||
|
|
Loading…
Reference in New Issue
Block a user