我在 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/