在Django中选择特定字段get_object_or_404
技术问答
243 人阅读
|
0 人回复
|
2023-09-12
|
我在Django中有一个模型,其中包含太多字段。前任:8 l0 }; o* _5 N/ `; j! c
class MyModel(models.Model): param_1 = models.CharField(max_length=100) ... param_25 = models.CharField(max_length=100)现在,我需要在此基础上获得它ID详细信息视图。我见过类似的方法,
( I3 k* L# p8 j3 U3 g7 _* Aobj = MyModel.objects.get(pk=5)obj = MyModel.objects.filter(pk=5)[0]obj = get_object_or_404(MyModel,pk=1)最后一种方法最适合我,因为我可以提供404代码更改的情况下提供404个错误。但我只需要param_1和param_2.,我需要类似的查询,
! n/ |& p0 u# v' e* @SELECT "param_1" FROM mymodel WHERE pk=1如何使用get_object_or_404完成此操作?
8 \5 K6 X" y4 e有人能帮忙找到解决方案吗?
9 O% R9 Z9 s6 }2 S' A/ n 0 t& L& q% e* ]2 o1 C [
解决方案: 8 G8 p7 c/ Y/ d
第一个参数get_object_or_404可以是Model,Manager或QuerySet:
3 D% z* n) k G, q" h必填参数
& ]5 |: a4 W6 M7 A1 H4 A6 b" e: t克拉斯$ Y, s$ K0 d# q
从中获取对象Model类,Manager或QuerySet实例。 d3 s: _! @; [) Y; n
因此,你所要做的就是传递预过滤器QuerySet,例如only:/ X; X- z( D' {
obj = get_object_or_404(MyModel.objects.only('param_1','param_2'),pk=1) |
|
|
|
|
|