我想把模型名作为参数传递给视图.py
但效果不是很好
请指导我怎么做谢谢
当我转到http://127.0.0.1:8000/filter/image/party/
有错误说:
'unicode' object has no attribute 'objects'
但终端可以打印mm='Party'
这是我的代码:
在模型.py公司名称:
^{pr2}$在网址.py公司名称:
urlpatterns = patterns('',
url(r'^image/(?P<model>\w+)/$', views.object_list_1 ),
在视图.py公司名称:
def object_list_1(request, model):
mm = model.capitalize()
obj_list = mm.objects.all()
template_name = 'filterimgs/%s_list.html' % mm.lower()
return render_to_response(template_name, {'object_list': obj_list,
context_instance=RequestContext(request))
您应该将
model
名称映射到模型类。在一种方法是使用
getattr
从app模块获取模型实例。在或使用显式映射:
^{pr2}$不确定为什么您认为这会起作用:仅仅对字符串调用
capitalize()
并不能神奇地将其转换为模型类。在您需要在Django的模型注册表中按名称查找实际的类。幸运的是,这里有一个函数:
get_model
。在相关问题 更多 >
编程相关推荐