在Djang的detailview中使用两个参数时,得到了“ValueError:invalid literal for int(),以10为基数:'Trancel'”

2024-04-25 18:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用其他两个网址标签,然后pk和slug以外的细节视图。我有以下代码段:

views.py

    class UseCaseDetailView(DetailView):
        template_name = "useCaseExtract/useCaseDetail.html"
        model = UseCaseProfile
        context_object_name = 'usecaseprofile'
        '''I am trying to override the get_object method of DetailView to accept url tags project and usecasename instead of pk and slug'''
        def get_object(self):     
            obj = get_object_or_404(UseCaseProfile, project=self.kwargs['project'], useCasename=self.kwargs['useCasename'])
            return obj

urls.py
...

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

...

in my template file, I have the following link:
/Trancel/UseCaseDetail/Nothing

after I clicked the link, I got:
ValueError: invalid literal for int() with base 10:  'Trancel'

can you some please explain to me why I am getting this error?

Tags: thetonamepyselfprojectgetobject
2条回答

您有能力将Trance1重命名为类似TranceOne的名称吗?所以它不包含整数?你知道吗

我认为您的问题是1当需要解析URL时..(因为它需要一个sting,但是它得到了带有1的字符串)。你知道吗

项目url标记是UseCaseProfile模型中的外键。为了查询UseCaseProfile,我修改了detailview中的get\u对象代码,如下所示。你知道吗

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

相关问题 更多 >