美文网首页
Django Ninja 技巧1

Django Ninja 技巧1

作者: alue | 来源:发表于2023-10-22 17:28 被阅读0次

最近在项目中逐步使用 Django Ninja 替换传统的 DRF,原因是其写起来更加便捷高效。

一开始,不习惯的是面对下面这种外接关联场景

class A(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE, verbose_name='人员')

打算直接序列化得到 person.name 字段,传统的DRF,能够用

student_name = serializers.CharField(source='student.name', read_only=True)

告诉序列化器。

但是在 Django Ninja 中,官方文档没有给出明确的方法,看上去只能用嵌套式的构建 Schema。

经过一番探索,发现其实也有扁平化的解决方案:

class A(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE, verbose_name='人员')
   
    @property
    def student_name (self):
        return self.person.name

class ASchema(ModelSchema):
    class Config:
        model = models.A
        model_fields = "__all__"

    student_name : str

只用在模型中增加property 属性, 然后在 ModelSchema 中声明即可。

相关文章

  • Django和FastAPI的结合体, Django-ninja

    1.为什么是django-ninja django-rest-framework不香吗? 直接FastAPI不香吗...

  • blade编译c++环境

    1、安装jdk 2、安装ninja git clonehttps://github.com/ninja-build...

  • DRF

    Django REST framework Django REST framework的各种技巧【目录索引】

  • Ninja saves beauty

    Ninja saves beauty is a cool ninja game that moves ninjas...

  • Ninja - a build system

    Ninja, similar to Make Ninja primarily targets only one p...

  • Flutter engine编译&调试

    概念 Flutter Engine使用GN和Ninja进行编译,GN编译后生成Ninja的构建文件,Ninja将输...

  • Ninja Jump run

    Ninja Jump run is a ninja parkour game. You have to be ca...

  • Ninja编译介绍

    因为webrtc是用ninja编译的,所以学习了下Ninja。 Ninja是一种类似GNU make的编译系统。 ...

  • Ninja 源码探析

    官方介绍及源码下载 https://ninja-build.org/ ninja.cc

  • 编译swift

    先安装ninja和cmake可以使用homebrew brew install cmake ninja mkdir...

网友评论

      本文标题:Django Ninja 技巧1

      本文链接:https://www.haomeiwen.com/subject/wtqdidtx.html