Django Can';t使用“创建自定义身份验证模型”;如果user.is“u authenized”;在html中

Django Can';t使用“创建自定义身份验证模型”;如果user.is“u authenized”;在html中,django,django-authentication,Django,Django Authentication,嗨,我正在尝试在我的html文件中创建一个注册链接。但它只有在我已经登录时才起作用 设置.py AUTH_USER_MODEL = 'users.User' from django.db import models from django.contrib.auth.models import AbstractUser from django.urls import reverse_lazy class User(AbstractUser): # Address plz = m

嗨,我正在尝试在我的html文件中创建一个注册链接。但它只有在我已经登录时才起作用

设置.py

AUTH_USER_MODEL = 'users.User'
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse_lazy

class User(AbstractUser):
    # Address
    plz = models.CharField(max_length=5)
    ort = models.CharField(max_length=30)
    strasse = models.CharField(max_length=30)
    strnr = models.CharField(max_length=5)
    # Kontakt
    mobil = models.CharField(max_length=20)
class UserCreate(CreateView):
    model = User
    form_class = UserCreate
    template_url_suffix = '_create_form'

    def get_context_data(self, **kwargs):
        context = super(UserCreate, self).get_context_data(**kwargs)
        context['head'] = 'Account erstellen'
        return context
url(r'^user/create/$', views.UserCreate.as_view(), name='user-create'),
型号.py

AUTH_USER_MODEL = 'users.User'
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse_lazy

class User(AbstractUser):
    # Address
    plz = models.CharField(max_length=5)
    ort = models.CharField(max_length=30)
    strasse = models.CharField(max_length=30)
    strnr = models.CharField(max_length=5)
    # Kontakt
    mobil = models.CharField(max_length=20)
class UserCreate(CreateView):
    model = User
    form_class = UserCreate
    template_url_suffix = '_create_form'

    def get_context_data(self, **kwargs):
        context = super(UserCreate, self).get_context_data(**kwargs)
        context['head'] = 'Account erstellen'
        return context
url(r'^user/create/$', views.UserCreate.as_view(), name='user-create'),
forms.py

AUTH_USER_MODEL = 'users.User'
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse_lazy

class User(AbstractUser):
    # Address
    plz = models.CharField(max_length=5)
    ort = models.CharField(max_length=30)
    strasse = models.CharField(max_length=30)
    strnr = models.CharField(max_length=5)
    # Kontakt
    mobil = models.CharField(max_length=20)
class UserCreate(CreateView):
    model = User
    form_class = UserCreate
    template_url_suffix = '_create_form'

    def get_context_data(self, **kwargs):
        context = super(UserCreate, self).get_context_data(**kwargs)
        context['head'] = 'Account erstellen'
        return context
url(r'^user/create/$', views.UserCreate.as_view(), name='user-create'),
我定制了原始UserCreationForm以实现附加字段:

class UserCreate(forms.ModelForm):
    --snip--
    class Meta:
        model = User
        fields = ('username', 'password1', 'password2', 'first_name', 
                  'last_name', 'email', 'mobil', 'plz', 'ort', 
                  'strasse', 'strnr',)
视图.py

AUTH_USER_MODEL = 'users.User'
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse_lazy

class User(AbstractUser):
    # Address
    plz = models.CharField(max_length=5)
    ort = models.CharField(max_length=30)
    strasse = models.CharField(max_length=30)
    strnr = models.CharField(max_length=5)
    # Kontakt
    mobil = models.CharField(max_length=20)
class UserCreate(CreateView):
    model = User
    form_class = UserCreate
    template_url_suffix = '_create_form'

    def get_context_data(self, **kwargs):
        context = super(UserCreate, self).get_context_data(**kwargs)
        context['head'] = 'Account erstellen'
        return context
url(r'^user/create/$', views.UserCreate.as_view(), name='user-create'),
url.py

AUTH_USER_MODEL = 'users.User'
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse_lazy

class User(AbstractUser):
    # Address
    plz = models.CharField(max_length=5)
    ort = models.CharField(max_length=30)
    strasse = models.CharField(max_length=30)
    strnr = models.CharField(max_length=5)
    # Kontakt
    mobil = models.CharField(max_length=20)
class UserCreate(CreateView):
    model = User
    form_class = UserCreate
    template_url_suffix = '_create_form'

    def get_context_data(self, **kwargs):
        context = super(UserCreate, self).get_context_data(**kwargs)
        context['head'] = 'Account erstellen'
        return context
url(r'^user/create/$', views.UserCreate.as_view(), name='user-create'),
如果我已登录,我可以使用该链接创建用户实例:

base.html

 <body>
   <ul>
     <li><a href="{% url 'users:home' %}">Home</a></li>
     <li><a href="{% url 'users:user-create' %}">register</a></li>
     {% if user.is_authenticated %}
       <li><a href="{% url 'users:user-detail' user.id %}">Account</a></li>
       {% if user.sportler %}
         <li><a href="{% url 'users:sportler-detail' user.sportler.id %}">Sportler</a></li>
       {% else %}
         <li><a href="{% url 'users:sportler-create' %}">Sportler werden</a></li>
       {% endif %}
 ....

  • {%if user.u经过身份验证%}
  • {%if user.sportler%}
  • {%else%}
  • {%endif%} ....

如果没有登录,我如何使其工作

错误:找不到参数为“(无,)”的“用户详细信息”的反转。已尝试1个模式:[“用户/(?P[0-9]+)/detail/$”]


我在我的创作表单中有一个反向链接。叫我莫伦

<a href="{% url 'users:user-detail' user.id %}"><button>Zurück</button></a>


将其编辑为
,它可以工作…

发布完整的html或至少
用户详细信息
使用partUser detail不应被调用。不是在创建或搜索成功url时。用户在哪里?尝试request.user而不是itt这个问题与它的标题完全没有关系。可能是重复的