Как сделать просмотр профиля пользователя?

Поскольку я новичок в django, я впервые пытаюсь создать профиль пользователя. И я не знаю, как сделать представление профиля со ссылкой на него. Не могли бы вы привести мне пример

models.py

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), unique=True)
    username = models.CharField(max_length = 40, unique=True)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(default=timezone.now)
    slug = AutoSlugField(populate_from = 'username', null=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username']

    objects = CustomUserManager()

    class Meta:
        verbose_name = 'Пользователь'
        verbose_name_plural = 'Пользователи'

    def __str__(self):
        return self.email

    def get_absolute_url(self):
        return reverse('profile', args=[str(self.slug)])


class UserProfile(models.Model):
    user = models.OneToOneField(CustomUser, on_delete = models.CASCADE, null = True, db_constraint=False)
    avatar = ProcessedImageField(
        upload_to = 'avatar',
        format = "JPEG",
        default = "avatar/empty_avatar.jpg",
        processors = [ResizeToFit(250, 200)],
        options = {'quality': 90},
        blank = True,
        null = True,
    )
    description = models.TextField(default = '', blank =  True, null = True)
    slug = AutoSlugField(populate_from = 'user', null=True)

    class Meta:
        verbose_name = 'Профиль'
        verbose_name_plural = 'Профили'

    @receiver(post_save, sender=CustomUser)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)

    @receiver(post_save, sender=CustomUser)
    def save_user_profile(sender, instance, **kwargs):
        try:
            instance.userprofile.save()
        except ObjectDoesNotExist:
            UserProfile.objects.create(user=instance)

forms.py

class CustomUserCreationForm(UserCreationForm):

    class Meta:
        model = get_user_model()
        fields = ('email', 'username',)


class CustomUserChangeForm(UserChangeForm):

    class Meta:
        model = get_user_model()
        fields = ('email', 'username',)


class UserProfileForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ('avatar', 'description',)

Я не знаю, как получить правильный набор запросов в файле views.py

class UserProfileUpdate(generic.UpdateView, generic.FormView):
    template_name = 'users/profile.html'
    form_class = UserProfileForm

    def form_valid(self, form):
        response = form.save(commit = False)
        response.save()
        return super(UserProfileUpdate, self).form_valid(form)

    def get_context_data(self, **kwargs):
        context = super(UserProfileUpdate, self).get_context_data(**kwargs)
        context['user'] = CustomUser.objects.get(slug = slug)
        context['profile'] = UserProfile.objects.get(user = context['user'])
        return context

Я также хочу, чтобы пользователи могли просматривать профили других пользователей, а не только свой собственный

Вернуться на верх