0

我愿意说服这是一个坏主意。但如果没有,这是一般的平局:

  1. 维护数据的 Web 界面 (django.contrib.admin)。
  2. 创建页面的 Web 界面 (django.contrib.flatpages)
  3. 用于创建模板的 Web 界面 ( dbtemplates )
  4. 用于创建查询和定义上下文的 Web 界面在哪里?(上下文?)

编辑


这是 Django 站点开发的正常情况。您要创建一个新页面,找出它的 url,找出支持该页面所需的数据,然后创建适当的模板,以便以您想要的方式呈现数据。

我想要做的是从管理界面定义支持页面所需的数据;本质上是您放入 views.py 文件的内容。

我想有一个处理身份验证的包装器视图,但从模型(表)接收其所有上下文。

from dbcontext import DBContext  # this is fictitious  

def db_context_view(request, **args, **kwargs):
  # ...some code to handle auth
  context = DBContext.objects.get_context_for_request(request, **args, **kwargs)
  return render_to_response('mydbtemplates/example.html', context)

我仍然很乐意编辑 urls.py 文件以确保将足够多的内容传递给视图,以便 DBContext 管理器可以找到适当的上下文记录,执行所需的查询(满足任何查询参数),并为模板成功。

4

1 回答 1

0

我相信您正在寻找contenttypes 框架。使用 contenttypes 框架,您可以执行以下操作:

def db_context_view(request, *args, **kwargs):
    # ...some code to handle auth
    ct = ContentType.objects.get_for_id(kwargs['content_type_id'])
    obj = ct.get_object_for_this_type(pk=kwargs['object_id'])

使用这种方法,您可以构建您想要的视图。

于 2010-07-19T19:25:35.213 回答