Я создаю панель поиска, которая берет имя пользователя и находит этого игрока в базе данных.Я создаю PlayerStatsForm (), который принимает запрос, ищет в базе данных игроков с именем пользователя из запроса и возвращает статистику игроков.Я знаю, что имя пользователя передается формой html в мой код Python правильно, и форма передается true для PlayerStatsForm.is_valid (), но когда я пытаюсь вызвать playerstatsform.username, он говорит, что атрибут не найден.Если я добавляю модель = Player и изменяю формы. Форма в ModelForm в PlayerStatsForm пытается вставить игрока без имени пользователя или идентификатора в базу данных и говорит, что столбец user_id не может быть пустым
<tr><th><label for="id_username">Username:</label></th><td><input type="text" name="username" value="testuser" required id="id_username"></td></tr>
Internal Server Error: /elousers/elosearch/
Этоошибка терминала, поэтому проблема заключается в том, что id = id_username, а не name = id_username?
playerstatsform:
class PlayerStatsForm(forms.Form):
username = forms.CharField()
class Meta:
fields = (
'username',
)
views.py:
def elosearch(request):
if request.method == 'POST':
print("Post was found")
if 'get_player' in request.POST:
playerstatsform = PlayerStatsForm(request.POST)
print("post found")
if playerstatsform.is_valid():
player = Player.objects.get(name=playerstatsform.cleaned_data['username'])
print("player found successfully")
player_elo = player.elo
player_name = player.name
print(player_elo)
context1 = {'playername': player_name, 'playerelo': player_elo}
return render('elousers/elosearch.html', context1)
else:
invalid_player_entry = "Username not added. Please register below."
context1 = {'invalid_player': invalid_player_entry}
return render(request, 'elousers/elosearch.html', context1)
elif 'addgame' in request.POST:
gameform = GameForm(data=request.POST)
if gameform.is_valid():
gameform.save()
game_success = "Game Successfully Added!"
context2 = {'game_display': game_success}
return render(request, 'elousers/elosearch.html', context2)
else:
game_invalid = "Invalid entry. Please try again."
context2 = {'game_display': game_invalid}
return render(request, 'elousers/elosearch.html', context2)
else:
return render(request, 'elousers/elosearch.html')
elif request.method == 'GET':
print("get was called")
return render(request, 'elousers/elosearch.html')
ожидаютбаза данных для запроса с использованием имени пользователя, указанного в форме, но я получаю, что объект PlayerStatsForm не имеет атрибута 'username'