您好我正在尝试在我的html文件中创建一个注册链接。但它只在我已经登录时才有效。
settings.py
AUTH_USER_MODEL = 'users.User'
models.py
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)
forms.py
我自定义了原始UserCreationForm以实现其他字段:
class UserCreate(forms.ModelForm):
--snip--
class Meta:
model = User
fields = ('username', 'password1', 'password2', 'first_name',
'last_name', 'email', 'mobil', 'plz', 'ort',
'strasse', 'strnr',)
views.py
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
urls.py
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 %}
....
如果没有登录,我怎样才能使它工作?
错误:反向用户详细信息&#39;有参数&#39;(无,)&#39;未找到。尝试了1种模式:[&#39;用户/(?P [0-9] +)/详细信息/ $&#39;]
答案 0 :(得分:0)
我的创作表单中有一个反向链接。叫我morron。
<a href="{% url 'users:user-detail' user.id %}"><button>Zurück</button></a>
将其编辑为<a href="{% url 'users:home' %}"><button>Zurück</button></a>
并且有效......