Получил "ValueError: неверный литерал для int() с основанием 10: 'Trancel'" при использовании двух параметров в detailview в Django

Я пытаюсь использовать два других тега URL, кроме pk и slug в подробном представлении. У меня есть следующий фрагмент кода:

класс views.py UseCaseDetailView(DetailView):
        template_name = "useCaseExtract/useCaseDetail.html"
        model = UseCaseProfile
        context_object_name = 'usecaseprofile'
        '''Я пытаюсь переопределить метод get_object DetailView, чтобы принять теги url проекта и имя пользователя вместо pk и slug'''
        def get_object(self):     
            obj = get_object_or_404(UseCaseProfile, project=self.kwargs['project'], useCasename=self.kwargs['useCasename']) вернуть obj

urls.py
...

    path('/UseCaseDetail/', UseCaseDetailView.as_view(), name='UseCaseDetail')

... в моем файле шаблона есть следующая ссылка:
/Trancel/UseCaseDetail/ Ничего после того, как я щелкнул ссылку, я получил:
ValueError: недопустимый литерал для int() с основанием 10: "Trancel", не могли бы вы объяснить, почему я получаю эту ошибку?

2 ответа

Тег URL проекта является внешним ключом в модели UseCaseProfile. Чтобы запросить UseCaseProfile, я изменил код get_object в подробном представлении, как показано ниже.

def get_object(self):
        project=Project.objects.all()
        x=project.filter(projectName=self.kwargs['project'])
        obj = get_object_or_404(UseCaseProfile, project=x.first(), useCasename=self.kwargs['useCasename'])
        return obj

У вас есть возможность переименовать Trance1 что-то вроде TranceOne? Так что это не включает в себя целое число?

Я думаю, что ваша проблема в том, что 1 когда приходит время разбирать URL-адрес..(так как он ожидает укуса, но получает строку без 1 в этом).

Другие вопросы по тегам