我在视图中使用TamplateView,因此当用户登录时,它将重定向到他的主页。
我有两个应用程序:app_manager(负责登录和注册)和app_user,我们可以在其中找到用户的所有功能。
app_manager.views:
return HttpResponseRedirect(reverse("app_user:switcher_user", args=(slugify(username_instance),)))
app_user.views:
def switcher_user(request, username):
print(username)
qs = User.objects.filter(username=username)
print(qs)
if not qs.exists():
print("user not found")
return HttpResponseRedirect(reverse('app_user:access_denied'))
else:
print("user already exists")
return user_index.as_view()(request)
class user_index(LoginRequiredMixin,TemplateView):
print("this is from user_index")
template_name = "app_user/user_index.html"
model = User
context_object_name = 'user'
class ProfilView(LoginRequiredMixin,TemplateView):
template_name = "app_user/user_profil.html"
class GroupsView(LoginRequiredMixin,ListView):
template_name = "app_user/user_groups.html"
app_user.urls:
app_name ="app_user"
urlpatterns = [
re_path(r'^(?P<username>[\w.@+-]+)/', views.switcher_user, name='switcher_user'),
re_path(r'^(?P<username>[\w.@+-]+)/profil', views.ProfilView.as_view(), name='user_profil'),
re_path(r'^(?P<username>[\w.@+-]+)/groups', views.GroupsView.as_view(), name='user_groups'),
在我的app_user应用程序中,我有一个模板文件夹,在其中可以找到该类型用户的所有html页面。在我的base.html中:
<li> <a href="{% url 'app_user:user_profil' username=user.username %}">Profil</a></li>
<li> <a href="{% url 'app_user:user_groups' username=user.username %}">Groups</a></li>
这里的问题是,当我单击“ Profil”或“组”以转到“性能文件”页面或“组”页面时,我在浏览器地址栏中获得了正确的url,但使用了错误的html文件。它总是读取相同的视图,即switcher_user和user_index,并为我带来相同的页面“ user_index.html”。
答案 0 :(得分:0)
您没有终止正则表达式。
re_path(r'^(?P<username>[\w.@+-]+)/$', ...)