Django DetailView: переключает меня на другого пользователя
У меня есть два типа пользователей, студент и преподаватель. И у меня есть эта ListView
для преподавателей, отображающая их имя, заголовок профиля и биографию, которая успешно работает, и я также поместил ссылку на эти три поля, перенаправляющую на детальный просмотр их профиля. Теперь, я использовал cbv DetailView
для отображения подробного просмотра их профиля, который также работает отлично... но единственная проблема в том, что когда я нажимаю на эту ссылку как студент, она переключает мой профиль или мой тип пользователя на этого конкретного репетитора, но когда я нажимаю домой или любую другую страницу сайта, она переключается обратно в нормальное состояние. Не мог бы кто-нибудь помочь мне с этим, пожалуйста? Потому что я ищу решение этой проблемы со вчерашнего дня, но я не смог найти проблему, похожую на мою. Извините за мой английский, пожалуйста.
Это список репетиторов, и, как вы можете видеть в правом верхнем углу, я вошел в систему как студент.
Вот, справа вверху видно, что он переключает меня на профиль Джосса.
это мои модели
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_tutor = models.BooleanField(default=False)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
email = models.EmailField(max_length=100)
phone_number = models.CharField(max_length=11, blank=False)
current_address = models.CharField(max_length=100)
image = models.ImageField(default='default_pic.jpg', upload_to=path_and_rename, verbose_name='Profile Pictures')
def __str__(self):
return f'{self.username}'
class StudentProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='student_profile')
def __str__(self):
return f"{self.user.first_name} {self.user.last_name} Profile"
class TutorProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='tutor_profile')
profile_headline = models.CharField(max_length=200, null=True)
bio = models.TextField(max_length=500, blank=True, null=True)
is_validated = models.BooleanField(default=False)
DAYS = (('Monday', 'Monday'),
('Tuesday', 'Tuesday'),
('Wednesday', 'Wednesday'),
('Thursday', 'Thursday'),
('Friday', 'Friday'),
('Saturday', 'Saturday'),
('Sunday', 'Sunday'),)
LANG = (('Javascript', 'Javascript'),
('Python', 'Python'),
('Swift', 'Swift'),
('Java', 'Java'),
('Sql', 'Sql'),
('PHP', 'PHP'),
('C#', 'C#'),)
programming_languages = MultiSelectField(choices=LANG, null=True)
availability = MultiSelectField(choices=DAYS, null=True)
def __str__(self):
return f"{self.user.first_name} {self.user.last_name} Profile"
это мое мнение
class TutorListView(LoginRequiredMixin,ListView):
model = User
template_name = 'accounts/tutor_list.html'
context_object_name = 'tutors'
ordering = ['userrating']
paginate_by = 5
class TutorDetailView(LoginRequiredMixin,DetailView):
model = User
template_name = 'accounts/tutor_detail_view.html'
class ProfileView(LoginRequiredMixin, TemplateView):
template_name = 'accounts/profile.html'
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Введите context_object_name = 'tutor'
в свой DetailView
класс!