rstJkee
@rstJkee

Работа со slug и pk в django?

У меня есть 2 модели (первая User, стандартная, вторая, отображает резюме пользователя)
class ResumesModel(models.Model):
    client_id = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    work_experience = models.IntegerField(verbose_name="Опыт работы")
    specialization = models.TextField(verbose_name="Специальность")
    desired_salary = models.IntegerField(verbose_name="Желаемая зарплата", blank=True)
    hard_skills = models.TextField(verbose_name="Ключевые навыки")
    about_you = models.TextField(verbose_name="О себе")
    native_language = models.TextField(verbose_name="Родной язык")
    foreign_language = models.TextField(verbose_name="Иностранный язык")

    def __str__(self):
        return str(self.client_id)


Во views.py есть класс
class ResumesDetail(DetailView):
    model = ResumesModel
    template_name = "work/resumes/detail.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        # context["this_user"] = User.objects.get()
        return context


В urls
path('resumes/<slug:client_id>', views.ResumesDetail.as_view(), name="check_resume"),

Как правильно указать slug для этого класса, чтобы не выскакивал AttributeError?

P.S.: client_id вернёт строку (например: rst)
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
rstJkee
@rstJkee Автор вопроса
Вообщем-то, проблема решилась довольно интересным (и мало ожидаемым для меня способом).
Суть в том, что в разметке размещалась строка, а не id, а надо было указать на id из таблицы User (если я вообще всё правильно понял). То есть вместо строки
<a href="{% url "check_resume" resume.client_id %}">Посмотреть</a>

Поставил строку
<a href="{% url "check_resume" resume.pk %}">Посмотреть</a>

Ну и в urls
path('resumes/<slug:pk>', views.ResumesDetail.as_view(), name="check_resume"),
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы