Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中的用户名配置文件页面url错误_Python_Django - Fatal编程技术网

Python Django中的用户名配置文件页面url错误

Python Django中的用户名配置文件页面url错误,python,django,Python,Django,我为用户准备了一个个人资料页面。当他点击用户名时,进入此页面 示例用户名:maxfactor url:domain.com/user/maxfactor 但是如果用户名包含utf-8字符,我将无法访问此用户的配置文件页面 用户名示例:MAXFÜKTOR或LÜLÜY或Küçkzgard 所以问题在于人物的性格。。。当我想转到这个用户名时,浏览器会自动进行错误的重定向,如下所示 domain.com/de/user/MAXF%25c3%259cKTOR 但有趣的是,当我在localhost上尝试它时

我为用户准备了一个个人资料页面。当他点击用户名时,进入此页面

示例用户名:maxfactor url:domain.com/user/maxfactor

但是如果用户名包含utf-8字符,我将无法访问此用户的配置文件页面

用户名示例:MAXFÜKTOR或LÜLÜY或Küçkzgard

所以问题在于人物的性格。。。当我想转到这个用户名时,浏览器会自动进行错误的重定向,如下所示

domain.com/de/user/MAXF%25c3%259cKTOR

但有趣的是,当我在localhost上尝试它时,效果很好。相同的代码和本地主机的工作方式如下: domain.com/de/user/MAXFÜKTOR/ 而且它是有效的

现在我想到了一些方法,但我不知道怎么做

1-此结构适用于本地主机,但不适用于我的“plesk linux”服务器。我不确定我是否在服务器上安装了丢失的东西

2-我可以在注册成员时阻止这些字符

我希望我能解释这个问题。你可以在下面找到我的代码

url.py

from django.urls import path
from user import views

app_name = "user"

urlpatterns = [
        path('login/', views.loginUser,name="login"),
path('logout/', views.logoutUser,name="logout"),
path('users/', views.view_votes_that_user, name='alluser'),
#path('listusers/', views.filter_user, name='listusers'), kullanıcıları listelemek için
path('signup/', views.signup, name="signup"),
path('register/', views.registerUser, name="register"),
path('update/', views.edit_profile, name='edit_profile'),
path('activate/<uidb64>/<token>/', views.activate, name='activate'),
path('<str:username>/', views.filter_user_core, name='filtercore'),
]
def signup(request):
    if request.method == 'GET':
        return render(request, 'user/signup.html')
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get("username")
            sonuc = User.objects.filter(username=username)
            if len(sonuc) == 0:
                email = form.cleaned_data.get("email")
                mailcheck = User.objects.filter(email=email)
                if len(mailcheck) == 0:
                    user = form.save(commit=False)
                    user.is_active = False
                    user.save()
                    current_site = get_current_site(request)
                    mail_subject = _('Activate your account.')
                    message = render_to_string('user/acc_active_email.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(user.id)),
                        'token': account_activation_token.make_token(user),
                    })
                    to_email = form.cleaned_data.get('email')
                    email = EmailMessage(
                        mail_subject, message, to=[to_email]
                    )
                    email.send()
                    messages.info(request,_("You have successfully registered, We just send you a request to confirm your registration. If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder. Do contact us when you can’t find the confirmation mail."))
                    return redirect("index")

                else:
                    messages.info(request, _("This email adress is used for another person. Please choose different username."))
                    return redirect("user:signup")
            else:
                messages.info(request, _("This username is used for another person. Please choose different username."))
                return redirect("user:signup")
        else:
            return render(request, 'user/signup.html', {'form': form})
    else:
        form = SignUpForm()
    return render(request, 'user/signup.html', {'form': form})