我按如下方式生成QuerySet:
def get_queryset(self):
return Article.objects.filter(foreignkey=self.kwargs['value'])
该值的生成如下:
<a href="{% url 'someview' value %}">anchor</a>
url(r'^(?P<value>\w+)/$', someview.as_view(), name='someview')
当值为整数时,一切正常,但当我将值作为字符串传递时,我会收到:
ValueError: "invalid literal for int() with base 10"
答案 0 :(得分:1)
您正在将字符串传递给外键的主键,默认情况下它是整数。如果要根据外键字段使用进行过滤
def get_queryset(self):
return Article.objects.filter(foreignkey__valuefield=self.kwargs['value'])
来源 https://docs.djangoproject.com/en/dev/topics/db/queries/#filters-can-reference-fields-on-the-model