У меня есть набор уже существующих команд, которые пользователь может присоединить к [team1, team2, team3] в / jointeam, и это будет отображаться в /home.
Моя проблема в том, что переменная ' user_team 'из профиля остается' Нет ', даже после того, как пользователь успешно присоединился к команде.
Другими словами, если я введу' team1 'в / jointeam, я бы хотел, чтобы присвойте его user.profile.user_group
Заранее благодарен за ваш вклад!
Вот мой код:
Модели. py
#used to create a team
class TeamCreation(models.Model):
team_name = models.CharField(max_length=100, default=None, unique=True)
[...]
def __str__(self):
return self.team_name
#user-specific
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_team = models.CharField(max_length=30, null=True)
[...]
def __str__(self):
return f'{self.user.username} Profile'
def save(self, *args, **kwargs):
super(Profile, self).save(*args, **kwargs)
#model to join a team
class Join(models.Model):
team_name = models.CharField(max_length=100, default=None, unique=False)
def __str__(self):
return self.team_name
Forms.py
class UserUpdateForm(forms.ModelForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username','email']
class TeamCreationForm(forms.ModelForm):
class Meta:
model = TeamCreation
fields=['team_name']
class JoinForm(forms.ModelForm):
class Meta:
model = Join
fields=['team_name']
views.py - пользователи
[...]
@login_required
def join_team(request):
form_class = JoinForm
form_join = form_class(request.POST or None)
user = request.user
if request.method=='POST':
if form_join.is_valid():
newJoin = form_join.save(commit=False)
if not TeamCreation.objects.filter(team_name=newJoin.team_name).exists():
print("nope")
return redirect('dashboard')
messages.error("Team doesn't exist or incorrect key")
else:
print("exist")
group_name=newJoin.team_name
user.profile.user_team=group_name
newJoin.save()
return redirect('dashboard')
else:
print("Error")
context={
"form":form_join,
}
return render(request, "pages/join_team.html", context)
@login_required
def home(request):
user = request.user
group_name=user.profile.user_team
context={
"user_group":group_name,
}
return render(request,'pages/dashboard.html', context)
Дом. html
[...]
{% if user_team %}
<option>{{ user_team }}</option>
<option>Join a team</option>
<option>Create a team</option>
{% else %}
<option>-- none</option>
<option>Join a team</option>
<option>Create a team</option>
{% endif %}
[...]