У меня две модели подключены через ManyToManyField. Проблема в том, что другие пользователи могут видеть и выбирать записи другого пользователя.
Вот как выглядит models.py:
class TeamProfile(models.Model):
teamAdmin = models.ForeignKey('auth.User', on_delete=models.CASCADE, related_name='teamprofile')
teamName = models.CharField(max_length=300)
team_descriptions = models.CharField(max_length=3000)
team_logo = models.FileField(upload_to='teamProfile/team_logo', blank=True, null=True)
# team_captain = models.ManyToManyField(PlayerProfile)
team_players = models.ManyToManyField(PlayerProfile, related_name= 'team_player')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.teamName
class CompetitionProfile(models.Model):
creator = models.ForeignKey('auth.User', on_delete=models.CASCADE, related_name='competitionprofile')
comp_Name = models.CharField(max_length=50)
participating_team = models.ManyToManyField(TeamProfile, related_name='participating_team')
viewership_type = models.CharField(max_length=5, blank=True, null=True)
organizer_contact = models.CharField(max_length=14, blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.comp_Name
Вот как выглядит views.py :
class CompetitionCreateView(CreateView):
model = CompetitionProfile
form_class = ComPCreateForm
success_url = reverse_lazy('zone')
team = TeamProfile.objects.all()
def form_valid(self, form):
form.instance.creator = self.request.user
form.instance.participating_team = User.teamprofile.all()
# form.instance.participating_team = self.request.user.team
return super(CompetitionCreateView, self).form_valid(form)
В этом случае, если я создаю профиль команды, другие пользователи могут видеть профиль команды, который я создал, в качестве опции для выбора в своем поле participating_team
при заполнении формы профиля соревнования. Я хотел бы ограничить это только профилями команд, созданными этими пользователями. Вы не можете видеть или выбирать профиль команды, созданный другими пользователями, при заполнении формы профиля соревнования.
С этим можно справиться?