我在Django中有一个模型,其中包含太多字段。前任:
class MyModel(models.Model): param_1 = models.CharField(max_length=100) ... param_25 = models.CharField(max_length=100)
现在,我需要获取基于ID的详细信息视图。我已经见过类似的方法,
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可以是Model,Manager或QuerySet:
get_object_or_404
必填参数 克拉斯 从中获取对象的Model类,Manager或QuerySet实例。
必填参数
克拉斯
从中获取对象的Model类,Manager或QuerySet实例。
因此,您所要做的就是传递预先过滤的QuerySet,例如only:
only
obj = get_object_or_404(MyModel.objects.only('param_1', 'param_2'), pk=1)