代码之家  ›  专栏  ›  技术社区  ›  Daniel Rhoden

用于存储查询和定义上下文的Django Web界面

  •  0
  • Daniel Rhoden  · 技术社区  · 15 年前

    我愿意相信这是个坏主意。但如果不是这样的话,这是一个大致的结论:

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

    编辑


    这是Django网站开发的正常情况。您需要创建一个新页面,为其确定URL,确定支持该页面所需的数据,然后创建适当的模板,以便以您希望的方式显示数据。

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

    我设想有一个包装视图,它处理auth,但从一个模型(表)接收它的所有上下文。

    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管理器能够找到适当的上下文记录,执行所需的查询(满足任何查询参数),并返回适当的字典,以便模板成功。

    1 回复  |  直到 6 年前
        1
  •  0
  •   slypete    15 年前

    我相信你在找 contenttypes framework . 使用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'])
    

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

    推荐文章