Разница между 2 одинаковыми кодами - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь устранить неполадки ответа HTTP, один код работает нормально, но другой возвращает ValueError, они оба являются одним и тем же кодом, и я просмотрел их в течение 1 часа рядом, но я не могу найти, что неправильно с плохим кодом, это действительно беспокоит меня.

Рабочий код: `

from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth

def signup(request):
    if request.method == 'POST':
        if request.POST['password1'] == request.POST['password2']:
            try:
                user = User.object.get(username=request.POST['username'])
                return render(request, 'accounts/signup.html', {'error':'Username in use'})
            except User.DoesNotExist:
                User.objects.create_user(request.POST['username'], password=request.POST['password1'])
                auth.login(request.user)
                return redirect('home')
    else:
        return render(request, 'accounts/signup.html')

def login(request):
    return render(request, 'accounts/login.html')

def logout(request):
    return render(request, 'accounts/signup.html')

ПЛОХО КОД:

from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth

def signup(request):
 if request.method =='POST':
    if request.POST['password1'] == request.POST['password2']:
        try:
            user = User.object.get(username=request.POST['username'])
            return render(request, 'accounts/signup.html', {'error':'Username in use '})
        except User.DoesNotExist:
            User.objects.create_user(request.POST['username'], password=request.POST['password1'])
            auth.login(request.user)
            return redirect('home')
        else:
            return render(request, 'accounts/signup.html')

def login(request):
    return render(request, 'accounts/login.html')

def logout(request):
    return render(request, 'accounts/signup.html')

`

1 Ответ

0 голосов
/ 24 февраля 2020
 else:
            return render(request, 'accounts/signup.html')

Так что этот фрагмент кода, если это не сообщение, а GET-запрос в первом фрагменте кода, вернет регистрацию веб-страницы. html. Но во втором операторе else нет даже if.

...