是否可以使用通用的url设置为django中的所有模型实现django rest接口?
因此,而不是按模型配置:
class BlogResource(ModelResource):
model = Blog
urlpatterns = patterns('',
url(r'^Blog/$', ListOrCreateModelView.as_view(resource=BlogResource)),
url(r'^Blog/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=BlogResource)),
)
一种更通用的加载类型:
urlpatterns = patterns('',
url(r'^(?P<model>\w+)/$', GenericView.render_model_list()),
url(r'^(?P<model>\w+)/(?P<pk>[^/]+)/$', GenericView.render_model()),
)
通过允许系统生成模型并将其呈现到其余接口的工具。
最佳答案
class BlogResource(ModelResource):
model = Blog
urlpatterns = patterns('',
url(r'^Blog/$', ListOrCreateModelView.as_view(resource=BlogResource)),
url(r'^Blog/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=BlogResource)),
)
以更一般的方式,解决方案看起来像这样(对不起-我是手工编写的),但是您仍然需要导入这些模型并手工形成模型元组。
from django.conf.urls.defaults import patterns, url
from models import Model1, Model2, Model3
urlconf = ['', ]
for obj in (Model1, Model2, Model3):
name = obj.__class__.__name__
ResourceClass = type('%sResource' % name, (obj,), {
'model': obj,
})
urlconf.append(url(r'^%s/$' % name, ListOrCreateModelView.as_view(resource=ResourceClass)))
urlconf.append(url(r'^%s/(?P<pk>[^/]+)/$' % name, ListOrCreateModelView.as_view(resource=ResourceClass)))
urlpatterns = patterns(urlconf)
关于python - Django Rest Framework使用url加载指定的模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11415404/