扩展 get_object_or_404 以使用 select_related

Amy*_*yth 1 python django methods extend

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

模型.py

class Sample(models.Model):
    slug = models.SlugField()
    # Sample class fields
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

sample = get_sample_or_404(slug='first-sample')
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

Rég*_* B. 5

必须扩展 kwargs:

sample = get_object_or_404(models.Sample.objects.select_related(), **kwargs)
Run Code Online (Sandbox Code Playgroud)