小编las*_*hla的帖子

Django - 使用templatetags渲染许多模板非常慢

说,我有一个带照片库的页面.每个缩略图都有例如照片,国家,作者等.我使用模板标签(加载指定的模板)渲染这些项目/小部件 - 由于DRY(我在页面上的不同位置单独使用这些项目/小部件),它就是这样.

它很慢.

我使用django-debug-toolbar执行了一些分析:

SQL Queries: default 84.81 ms (147 queries)
Run Code Online (Sandbox Code Playgroud)

但:

Total CPU time: 5768.360 msec
Run Code Online (Sandbox Code Playgroud)

等待的时间太长了.

经过一番分析后发现,主要罪魁祸首是模板化.

当我想显示例如150张照片时,通过模板呈现600个相关项目/小部件.这意味着600次I/O操作甚至更多.将这些小部件移动到主模板可以解决问题,但不会保留DRY.

所以我的问题是如何避免这种行为?干,慢,干,快?我宁愿干得快......

django optimization django-templates

15
推荐指数
2
解决办法
5989
查看次数

使用Django中的上下文处理器在视图中访问全局变量

假设我有一个上下文处理器:

def title(request):
   return {'titles': 'mytitle'}
Run Code Online (Sandbox Code Playgroud)

我可以在模板中访问此变量{{ titles }}.

但是我怎么能在视野中这样做呢?

def myview(request):
    print request.titles
Run Code Online (Sandbox Code Playgroud)

似乎不起作用 - 'WSGIRequest' object has no attribute 'titles'


或者可能有更好的方法(比上下文处理器)在视图和模板中都可以访问全局变量?

提前致谢.

django django-views django-context

5
推荐指数
2
解决办法
4878
查看次数

在Django的管理员中具有递归自我关系的模型

假设我们有一个具有两个自递归关系的模型:

class Article(Item): # Item in this case is an abstract class
    date = models.DateField()
    parent = models.OneToOneField('self', null=True, blank=True)
    subatricles = models.ForeignKey('self', null=True, blank=True, related_name='subs')
Run Code Online (Sandbox Code Playgroud)

文章在这里作为节点 - 它可以有许多孩子(如果提供)和一个父母(如果有的话).但是,当我在Django的管理员中注册我的模型时,我的子系统被显示为"一对一" - 在这两种情况下都有选择框,但在后者中,不能选择多个值.

如何通过管理窗格将子项添加到此Article对象,然后列出它们?

我想拥有的是: 而不是正常的下拉.

谢谢.

django django-admin

2
推荐指数
1
解决办法
4152
查看次数