我正在使用django tastypie将具有相关(ToOne)字段的模型发布到其他模型资源。 URI是: /api/map/?format=json
django tastypie:如何通过url参数控制相关字段“丰满度”?
我希望让客户包括full_pages
URL参数,以获得完整的相关页面资源:/api/map/?full_pages=1&format=json
我真的不明白Relationship Fields docs,但我做了一个get_full
赎回:
def get_full(bundle):
if bundle.request.GET.get('full_pages', 0):
return True
return False
我试图传递调用到full
说法ToOneField
:
from tastypie.contrib.gis import resources as gis_resources
class MapResource(gis_resources.ModelResource):
page = fields.ToOneField('pages.api.PageResource', 'page', full=get_full)
但是,当我检查pdb时,get_full
永远不会被调用。
于是我试着用full
属性创建一个自定义FillableToOneField
:
class FillableToOneField(fields.ToOneFIeld):
full = get_full
class MapResource(ModelResource):
page = FillableToOneField('pages.api.PageResource', 'page')
再次,则永远不会调用get_full
。
有没有更好,更简单的方法来做到这一点?
似乎并不奏效 - GET参数对页面完整属性没有影响。 :( – groovecoder 2013-03-26 13:27:40
@groovecoder我在发布之前测试过这个,你是否有任何错误? – Amyth 2013-03-26 13:33:45
没有错误;我实际上扩展了tastypie.contrib.gis.resources.ModelResource,如果这有所作为?它看起来像“丰满”的相关字段是在脱水之前确定的? – groovecoder 2013-03-26 14:03:57