【发布时间】:2013-03-16 11:13:46
【问题描述】:
我有一个这样的模型字段
location_state = models.CharField(max_length=255, null=True, blank=True, choices=STATE_CHOICES)
它的值是由美味派返回的,但是为了呈现一个列表框,需要一个包含所有可用选项的列表。 通过资源公开此类选择的最佳方式是什么?
【问题讨论】:
标签: python django rest tastypie
我有一个这样的模型字段
location_state = models.CharField(max_length=255, null=True, blank=True, choices=STATE_CHOICES)
它的值是由美味派返回的,但是为了呈现一个列表框,需要一个包含所有可用选项的列表。 通过资源公开此类选择的最佳方式是什么?
【问题讨论】:
标签: python django rest tastypie
我会使用built-in schema 通知客户有关字段选项的信息。尽管如此,默认情况下,选择选项不包含在架构资源中。 This thread 展示了实现这一目标的一种方法。
2013-03-19 编辑:
或者,您可以通过使用/覆盖ModelResource 中的alter_list_data_to_serialize 方法将您的选择添加到元字段。
【讨论】:
由于某种原因,我找不到一种简单的方法来做出选择,但这会解决问题。
YourModel._meta.get_field('location_state').choices
您应该注意,_meta 是一个内部实现细节,但已被大量应用程序和扩展所依赖,因此使用起来应该相对安全。
【讨论】:
modelform 定义资源应该自省的模型的方式。