每次我打开一个页面上,我想要得到的当前活动的项目标识。这项工作将通过chacking子和验证当前登录用户可以查看。

一旦我到了我的看法我想是能够做到

tasks = Task.objects.filter(project = current_project)

在current_project(或CURRENT_PROJECT或 current_project ???) 已经建立。

任何人都可以解释的优点/缺点的各种办法,我发现在文档并把我放在正确的轨道?

  1. 会议
  2. 中间
  3. 螺纹
  4. 内置

这是我怎么做了它在结束:

装饰:

def check4project(fn):

    current_project = 'fred'
    def check(*args, **kw):
        kw['project']=current_project
        return fn(*args, **kw)
    return check

图例

@login_required
@check4project
@tweetpost
def index(request, project=0):

    print project
有帮助吗?

解决方案

这一切都取决于你的语义上的"当前项目"。这里有一些可能性:

  1. 这可能是一个特性的用户:他访问了他的个人资料页,并设置一个当前的项目。这种将储存在该数据库,并且你将访问它与奥姆.

  2. 这可能是一个特性的网址,仅仅基于子域。这可以通过与中间件,其中有访问的请求,并且可以例如,分析该主机名称和设置一个定义属性在请求你可以接你的视功能。

  3. 类似#2,可以使用视装饰如果检查项目做了一些意见,但不是所有的。这是类似于Django的装修,用于检查的授权。

  4. 这可能是一个特性的用户访问该网站:他访问网页的项目,选择一种以上的工作,它的粘性的,直到他选择的另一个项目。这将是最好存储在该届会议,这是专门为这类暂时性储存。

从你的描述,它sounsd喜欢#2或3是对你最好的,这取决于你的观点分之间关心子项目,而不是。

其他提示

你可以做一个context_processor然后得到你的价值从该请求的对象。

你有没有考虑一个 定义模板的标记?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top