我在 Django 中有一个包含太多字段的模型。
前任:

class MyModel(models.Model):
    param_1 = models.CharField(max_length=100)
    ...
    param_25 = models.CharField(max_length=100)

现在我需要根据 id 获取详细信息 View 。我见过像这样的方法,
obj = MyModel.objects.get(pk=5)
obj = MyModel.objects.filter(pk=5)[0]
obj = get_object_or_404(MyModel, pk=1)

最后一种方法最适合,因为我可以在不更改任何代码的情况下提供 404 错误。但我只需要 param_1 和 param_2。因此我需要一个类似的查询,
SELECT "param_1" FROM mymodel WHERE pk=1

如何使用 get_object_or_404 完成此操作?

有人可以帮助找到解决方案吗?

最佳答案

get_object_or_404 的第一个参数可以是 a Model, a Manager or a QuerySet :



因此,您所要做的就是传入一个预过滤的 QuerySet,例如 only 返回的查询集:

obj = get_object_or_404(MyModel.objects.only('param_1', 'param_2'), pk=1)

关于python - 在 Django get_object_or_404 中选择特定字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39565749/

10-12 23:20