我有一个对象,我想在管理员下使用而不是继承models.Model的模型.如果我让它继承models.Model,这个对象将在数据库中创建一个我不想要的表.我只希望这个对象留在内存中.
我从堆栈溢出的好人那里获得帮助的一个解决方案是创建管理视图,通过admin.py下的modelAdmin(admin.site.register())注册这些自定义视图,并将此类模型对象用作动态数据存储(在内存中).
由于这个类似对象的模型不继承自models.Model,admin.site.register()(在admin.py下)不接受它并显示'type'对象不可迭代"当我尝试访问它时出错浏览器.
sys*_*asa 17
嗯.谢谢大家的帮助.我提出的解决方案(在你的帮助下:)如下:
我有两个自定义模板:
my_model_list.html
my_model_detail.html
Run Code Online (Sandbox Code Playgroud)
在views.py下:
class MyModel(object):
# ... Access other models
# ... process / normalise data
# ... store data
@staff_member_required
def my_model_list_view(request) #show list of all objects
#. . . create objects of MyModel . . .
#. . . call their processing methods . . .
#. . . store in context variable . . .
r = render_to_response('admin/myapp/my_model_list.html', context, RequestContext(request))
return HttpResponse(r)
@staff_member_required
def my_model_detail_view(request, row_id) # Shows one row (all values in the object) in detail
#. . . create object of MyModel . . .
#. . . call it's methods . . .
#. . . store in context variable . . .
r = render_to_response('admin/myapp/my_model_detail.html', context, RequestContext(request))
return HttpResponse(r)
Run Code Online (Sandbox Code Playgroud)
在主django urls.py下:
urlpatterns = patterns(
'',
(r'^admin/myapp/mymodel/$', my_model_list_view),
(r'^admin/myapp/mymodel/(\d+)/$', my_model_detail_view),
( r'^admin/', include( admin.site.urls ) )
)
Run Code Online (Sandbox Code Playgroud)
最直接的答案是“不”。正如 Django Book 所说,管理员用于“编辑结构化内容的受信任用户”,在这种情况下,结构化内容是按层次结构排列的模型,并通过 settings.py 配置。更重要的是,如果您的对象没有完全鸭子类型到具有预期关系的 models.Model ,管理员可能会到处抛出异常。
然而,正如口头禅所说,“这只是蟒蛇”。您可以覆盖管理中的任何页面。只需在项目中创建您自己的模板,并将它们放在模板搜索中的第一位即可。此外,通过继承 admin/base.html,您可以保持管理项目的外观和感觉。
与其他对象一样,为此对象编写管理视图和模板,但请确保将视图包装在 is_staff 装饰器中,以确保视图免受未经授权的用户访问。将它们放在应用程序中,也许在 admin/views.py 中,以及 templates/admin/object_list.html 和 object_form.html。
一旦您拥有了针对这些非数据库对象的适当管理工具,您就可以通过管理索引页提供对它们的访问:您希望覆盖 admin/index.html,并根据需要向页面提供其他特定于项目的项目。
我这样做正是为了提供对存储我们数据的第三方 API(例如 ConstantContact 电子邮件服务)的管理访问权限,而且效果非常好。
| 归档时间: |
|
| 查看次数: |
14381 次 |
| 最近记录: |