Я разработал приложение для списка лидеров, в котором есть игроки и игры.
При регистрации он создает пользователя Django и создает объект Player
, связанный с ним.Когда я регистрируюсь, если PlayerForm.is_valid
равно True
, пользователь и игрок создаются там, где PlayerForm(UserCreationForm)
, и он отображает elosearch.html
, в противном случае он возвращается к register.html
.
Я могувидите, что игрок и пользователь создаются, но когда я отправляю запрос, он отображает register.html
, а не elosearch.html
.Как это отображает неправильное представление, если is_valid
производит True
, а если нет, почему проигрыватель и пользователь экономят?Я создал свою HTML-форму, поэтому мне не нужно передавать форму в шаблон (аргументы не используются)
PlayerForm
class PlayerForm(UserCreationForm):
username = forms.CharField(required=True)
email = forms.EmailField(required=True)
class Meta:
model = User
fields = (
'username',
'email',
'password1',
'password2',
)
def save(self, commit=True):
user = super(PlayerForm, self).save(commit=False)
user.username = self.cleaned_data['username']
user.email = self.cleaned_data['email']
user.password1 = self.cleaned_data['password1']
user.password2 = self.cleaned_data['password2']
new_player = Player(name=str(user.username), user=user)
if commit:
user.save()
new_player.save()
return user
Просмотр регистра
def register(request):
if request.method == 'POST':
form = PlayerForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'elousers/elosearch.html')
else:
return render(request, 'elousers/register.html')
else:
form = PlayerForm()
args = {'form': form}
return render(request, 'elousers/register.html', args)
Я вижу, что игрок и пользователь создаются, но когда я отправляю запрос, он обрабатывает register.html
, а не elosearch.html
.