Django登录\重定向\重定向到用户配置文件时URL失败

Django登录\重定向\重定向到用户配置文件时URL失败,django,redirect,registration,profile,Django,Redirect,Registration,Profile,我正在使用django注册redux,并且大部分都能正常工作。我试图在登录后重定向到用户配置文件。当前用户配置文件的URL为: url(r'^user/(\w+)/$', views.profile, name='profile'), def profile(request, username): user = get_object_or_404(User, username=username) products = Product.objects.filter(user=us

我正在使用django注册redux,并且大部分都能正常工作。我试图在登录后重定向到用户配置文件。当前用户配置文件的URL为:

url(r'^user/(\w+)/$', views.profile, name='profile'),
def profile(request, username):
    user = get_object_or_404(User, username=username)
    products = Product.objects.filter(user=user)
    if not request.user == user:
        return render(request, 'no.html')
    else:
        return render(request, 'profile.html', {'user':user,'products': products})
…配置文件的视图为:

url(r'^user/(\w+)/$', views.profile, name='profile'),
def profile(request, username):
    user = get_object_or_404(User, username=username)
    products = Product.objects.filter(user=user)
    if not request.user == user:
        return render(request, 'no.html')
    else:
        return render(request, 'profile.html', {'user':user,'products': products})
我已将
LOGIN\u REDIRECT\u URL='profile'
添加到settings.py,但出现了错误:

Reverse for 'profile' with no arguments not found. 1 pattern(s) tried: ['user/(\\w+)/$']
我已经讨论过很多次了,我完全糊涂了。我可以简单地设置
LOGIN\u REDIRECT\u URL='home'
,然后完成它,但那样我就无法克服这个错误。我需要为此创建不同的视图吗

编辑:

如果我将
LOGIN\u REDIRECT\u URL
设置为
'home'
'products'
或任何其他URL,它就会工作-只是不适用于
'profile'
。以下是我的URL.py:

urlpatterns = [
    url(r'^$', views.HomePage.as_view(), name='home'),
    url(r'^contact/$', views.contact, name='contact'),
    url(r'^designers/', views.DesignersView.as_view(), name='designers'),
    url(r'^subscribe/$', views.subscribe, name='subscribe'),
    url(r'^products/$', views.products, name = 'products'),
    url(r'^product/$', ProductListView.as_view(), name='product_list'),
    url(r'^user/(\w+)/$', views.profile, name='profile'),
    url(r'post_url/', views.post_product, name='post_product'),
    url(r'^([0-9]+)/$', views.detail, name = 'detail'),
    url(r'^like_product/$', views.like_product, name='like_product' ),
    url(r'^profile/edit/$', views.edit_profile, name='edit_profile'),
    url(r'^(?P<pk>\d+)/edit/$', PostUpdateView.as_view(), name='product-edit'),
    url(r'^(?P<pk>\d+)/delete/$', PostDeleteView.as_view(), name='product-delete'),
]
urlpatterns=[
url(r'^$',views.HomePage.as_view(),name='home'),
url(r“^contact/$”,views.contact,name='contact'),
url(r“^designers/”,views.DesignersView.as_view(),name='designers'),
url(r“^subscribe/$”,views.subscribe,name='subscribe'),
url(r“^products/$”,views.products,name='products'),
url(r“^product/$”,ProductListView.as_view(),name='product_list'),
url(r“^user/(\w+/$”,views.profile,name='profile'),
url(r'post\u url/',views.post\u product,name='post\u product'),
url(r'^([0-9]+)/$',views.detail,name='detail'),
url(r“^like\u product/$”,views.like\u product,name='like\u product'),
url(r“^profile/edit/$”,views.edit_profile,name='edit_profile'),
url(r'^(?P\d+)/edit/$',PostUpdateView.as_view(),name='product-edit'),
url(r'^(?P\d+)/delete/$',PostDeleteView.as_view(),name='product-delete'),
]

我还在搜索-只是还没有找到解决方案。

您的正则表达式url不正确。更改:

url(r'^user/(\w+)/$', views.profile, name='profile'),

url(r'^user/(?P[\w\-]+)/$”,views.profile,name='profile'),

终于找到了一种方法。我在my views.py中创建了登录视图:

from django.contrib.auth.views import LoginView

class LoginView(LoginView):

    def get_success_url(self):
        return reverse('profile', args=[self.request.user.username])
还将此添加到my urls.py以反映新视图:

url(r'^accounts/login/$', LoginView.as_view(), name='login'),

从settings.py中删除了
LOGIN\u REDIRECT\u URL
,并且成功了。

不幸的是,完全相同的问题。在一个按钮上的模板中,我使用了
{%url'profile'user.username%}
,这样url.py模式就可以工作了。