过滤外键

时间:2014-06-08 22:26:37

标签: python django django-models django-templates django-views

我按如下方式生成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"

1 个答案:

答案 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