扩展get_object_or_404以使用select_related
我想做的是定义一个自定义的方法,这个方法会用到 django.shortcuts.get_object_or_404
和 select_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 个回答
8
kwargs必须被展开:
sample = get_object_or_404(models.Sample.objects.select_related(), **kwargs)