回答

收藏

在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)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则