扩展get_object_or_404以使用select_related

时间:2013-02-04 11:25:19

标签: python django methods extend

我要做的是定义一个使用django.shortcuts.get_object_or_404select_related的自定义方法。我的方法定义如下:

models.py

class Sample(models.Model):
    slug = models.SlugField()
    # Sample class fields

helpers.py

import models
from django.shortcuts import get_object_or_404

def get_sample_or_404(**kwargs):
    sample = get_object_or_404(models.Sample.objects.select_related(), kwargs)
    return sample

现在,每当我尝试使用此方法时,我都会得到get_sample() got an unexpected keyword argument 'xxxx'。以下是我如何使用它:

sample = get_sample_or_404(slug='first-sample')

有人能把我放在正确的方向吗?

感谢。

1 个答案:

答案 0 :(得分:4)

必须扩大kwargs:

sample = get_object_or_404(models.Sample.objects.select_related(), **kwargs)