扩展get_object_or_404以使用select_related

2 投票
1 回答
1656 浏览
提问于 2025-04-17 14:41

我想做的是定义一个自定义的方法,这个方法会用到 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 个回答

8

kwargs必须被展开:

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

撰写回答