#python #django
#python #django
Вопрос:
Привет, у меня проблема с написанием условия, которое проверяет, находится ли вошедший в систему пользователь в настоящее время в списке зарегистрированных пользователей, и блокирует его повторную регистрацию, и если он есть в списке, это разблокирует мой доступ к турнирному переходу.
это мой views.py файл
def groups(request, pk):
tournament_groups = get_object_or_404(TournamentGroup, pk=pk)
tournament_users = TournamentUsers.objects.filter(user_group=tournament_groups)
judges = TournamentJudges.objects.filter(user_tournament=tournament_groups.tournament_name)
tournament = Tournament.objects.get(tournament_name=tournament_groups.tournament_name)
form = TournamentUsersForm()
current_user = request.user.debatants
if request.user.is_authenticated:
form = TournamentUsersForm(
initial={'user_tournament': tournament_groups.tournament_name,
'user_group': tournament_groups,
'user_full_name': current_user})
if request.method == "POST":
form = TournamentUsersForm(request.POST)
if form.is_valid():
form.save()
form = TournamentUsersForm()
context = {'tournament_groups': tournament_groups,
'tournament_users': tournament_users,
'form': form, 'judges': judges,
"tournament": tournament,
'current_user': current_user,}
return render(request, 'ksm_app2/groups.html', context)
это мой models.py файл
class TournamentUsers(models.Model):
user_full_name = models.ForeignKey(Debatants, on_delete=models.SET_NULL, null=True)
user_tournament = models.ForeignKey(Tournament, on_delete=models.SET_NULL, null=True)
user_group = models.ForeignKey(TournamentGroup, on_delete=models.SET_NULL, null=True)
def __str__(self):
return str(self.user_full_name.id)
это мой шаблон
{% for tournament_user in tournament_users %}
{% if current_user.id == tournament_user.user_full_name.id %}
<h2>Jesteś już zapisany</h2>
{% else %}
<h2>Zapisz się jako uczestnik</h2>
<form method="post" style="visibility: hidden"><br>
<button type="submit" style="visibility: visible!important">Zapisz się</button>
{% csrf_token %}
<label for="name">Imię i nazwisko</label>
{{ form.user_full_name }}
<label for="tournament">Wybierz turniej</label>
{{ form.user_tournament }}
<br>
<label for="tournament">Wybierz drużyne</label>
{{ form.user_group }}
<br>
</form>
{% endif %}
{% endfor %}
Я попытался написать условие в шаблоне html, но я не знаю, как я могу проверить, есть ли, например, идентификатор зарегистрированного пользователя в модели, единственное, что я сделал на этом этапе, что работает неправильно, — это написать цикл для всех пользователей и их идентификаторов и сравнить их с зарегистрированным пользователемИдентификатор. Цикл работает некорректно, потому что он соглашается только тогда, когда есть только один пользователь, с которым он согласен для другого, он уже выдает подделку. Кто-нибудь сможет сказать, как я могу это исправить.
Я был бы признателен за любые советы
Комментарии:
1. внутри вашего шаблона tournament_users forloop если вы добавляете
<h1>{{ tournament_user.user_full_name.id }}</h1>
внутри своего forloop, какой результат вы получаете?2. идентификатор текущего пользователя, который вошел в систему
3. не могли бы вы прислать мне какой-либо идентификатор этого кода
<h1>{{ tournament_user.user_full_name.id }}</h1>
4.
<h1>{{ tournament_user.user_full_name.id }}</h1>
= 475. каков результат этого?
{{ current_user.id }}