【问题标题】:Django-tastypie - how to include choices?Django-tastypie - 如何包含选择?
【发布时间】:2013-03-16 11:13:46
【问题描述】:

我有一个这样的模型字段

location_state = models.CharField(max_length=255, null=True, blank=True, choices=STATE_CHOICES)

它的值是由美味派返回的,但是为了呈现一个列表框,需要一个包含所有可用选项的列表。 通过资源公开此类选择的最佳方式是什么?

【问题讨论】:

    标签: python django rest tastypie


    【解决方案1】:

    我会使用built-in schema 通知客户有关字段选项的信息。尽管如此,默认情况下,选择选项不包含在架构资源中。 This thread 展示了实现这一目标的一种方法。

    2013-03-19 编辑

    或者,您可以通过使用/覆盖ModelResource 中的alter_list_data_to_serialize 方法将您的选择添加到元字段。

    【讨论】:

    • 这将是一个额外的 ajax 请求 - 获取架构。是否可以将选项直接添加到 json 响应中的“元”字段中?
    【解决方案2】:

    由于某种原因,我找不到一种简单的方法来做出选择,但这会解决问题。

    YourModel._meta.get_field('location_state').choices
    

    您应该注意,_meta 是一个内部实现细节,但已被大量应用程序和扩展所依赖,因此使用起来应该相对安全。

    【讨论】:

    • 对不起,我没有阅读关于通过资源公开的最后一点。我没有用过美味的派,所以我不能对此发表评论。但是,使用 django-piston,您只需构建一个包含所有必需字段(和附加项)的自定义资源,而不是使用 modelform 定义资源应该自省的模型的方式。
    猜你喜欢
    • 2011-12-10
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2011-04-25
    • 1970-01-01
    • 2015-07-03
    • 2023-03-19
    相关资源
    最近更新 更多