【问题标题】:How to extract model fields from Serializer in DRF?如何从 DRF 中的序列化器中提取模型字段?
【发布时间】:2017-11-21 12:35:54
【问题描述】:

我需要在 Django Rest Framework 中获取模型字段列表。

我通过以下方法从模型中获取字段列表,

filter_fields = model._meta.get_all_field_names()

也试过了,

filter_fields = [f.name for f in model._meta.fields]

但我想从序列化程序本身获取它,而不是从模型中提取。

有办法吗?

【问题讨论】:

  • 你可以这样做,[f.name for f in model._meta.fields]
  • 我这样做了...相反,我发现使用 get_all_field_names() 的替代方法将减少自定义循环

标签: django django-rest-framework


【解决方案1】:

我将 Django 3.1.4 与 DRF 3.12.2 一起使用。看来SampleFileSerializer.Meta.fields 对我有用。

【讨论】:

    【解决方案2】:

    如果您使用的是基于ModerlSerializer 的序列化程序,则必须在Meta 中设置model,这样您就可以直接访问其中的模型(我认为这是一个hacky 解决方案,但它有效)

    MySerializer.Meta.model._meta.get_all_field_names()
    

    【讨论】:

    • 太棒了……但是看到这个之后,从模型中获取会更好……但是太好了,我从中学到了一些东西……我希望得到更好的方法……比如 serializer.fields()跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多