BLOG
Enjoy when you can, and endure when you must.
FEB 11, 2014/Django
django+uwsgi之session抽风记
新配好一个服务器,结果用着用着发现个奇怪的问题,只要一登录就很智能的把我踢出来了。这种问题很容易想到是出在session上,但为什么呢?既然代码不存在问题,在别的机子上也不存在问题,配置也没发生任何变化,那问题难道出在uwsgi上? 然后偶然在Stack Overflow上发现一篇提问《uWSGI processes lose Django sessions》和我遇到的问题差不多,并且在下方有回复提到尝试升级uwsgi到1.2.6以上版本。然后想想自己的情况,可能确实如此,我的uwsgi是通过apt-get安装的,这时常会碰到版本比较低的情况。 $ uwsgi ...
DEC 10, 2013/Django
InlineModelAdmin的魅力
如果经常使用Django Admin作为管理后台,那其中提供的InlineModelAdmin一定会经常凸显其魅力的。假如有这样的需求,我们接收来自用户的消息,并针对消息的内容做关键字匹配,然后再向用户返回特定的消息。那相关的模型可能如下:class Rule(models.Model):     ...     name = models.CharField(max_length=100)     msg = m...
NOV 21, 2013/Django
使用Grappelli提供的Related Lookups让GenericForeighKey在Admin中更好用
Django中的GenericForeignKey是个非常好的东西,可以方便的实现一个字段关联不同的外键。不过在Django Admin中,GenericForeignKey默认的使用效果很不方便,如下图所示,“响应消息类型”对应的是content_type,“关联消息”对应的是object_id。图中可以看出它不像普通ForeignKey那样可以实现快速查找。 不过很好的是Django-Grappelli中为我们提供了一个Related Lookups并且可以直接用在GenericForeignKey上。 Django...
NOV 15, 2013/Django
在ModelAdmin中自定义list_filter
list_filter可以对数据进行筛选,支持BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey或ManyToManyField。另外,还可以自定义!假设这里有一个Activity模型并为其增加一个自定义过滤器使其能够方便的筛选出“我参与的活动”、“我发布的活动”,我们可以这样做:class ActTypeFilter(SimpleListFilter):     title = u'类型'  &nb...
NOV 13, 2013/Django
在ModelAdmin中添加自定义View
为拓展ModelAdmin的功能,我们时常需要通过自定义View来进行拓展,通过利用ModelAdmin.get_urls(self)可以很方便的做到这一点。ModelAdmin中的get_urls方法返回该ModelAdmin中特定的URLs,其采用的方式和URLConf一样。由此,我们只需加入自己的View函数并通过get_urls方法加入URL链接即可达到目的。以下是我自己网站的一个示例:class PhotoAdmin(admin.ModelAdmin):     ......    &nbs...
OCT 16, 2013/Django
Django 时区设置与使用
打开 Django 工程的配置文件,可以看到如下配置项:# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be s...
SEP 23, 2013/Django
django中复制/克隆一条查询结果
本文转载自:http://mozillazg.com/2013/02/django-copy-or-clone-a-query-result-and-insert-it-into-database.html复制/克隆一条查询结果,并将它插入到数据库中:将 pk 值设为 None 即可: blog.save() # post.pk == 1     blog.pk = None blog.save() # post.pk == 2如果该 model 继承...
APR 29, 2013/Django
Django 数据库访问性能优化
本文主体内容为转载(查看来源),外加一些自己的学习与理解对其内容进行了少量补充。1. 使用标准的数据库优化技术:在进行Django数据库访问性能优化之前,首先应该使用标准的数据库技术对其进行优化,比如给字段加索引,通过使用 django.db.models.Field.db_index 来给一个Django模型类的字段加索引,设置这个属性字段的Field.db_index=True。注:django对model中的fk和unique = True的字段将自动创建索引。2. 理解Django中QuerySet的工作机制对数据库访问优化至关重要:QuerySet是懒加载的,它只有在需要的时候...
APR 25, 2013/Django
在Django中要求https连接
在对安全较高的网站中,我们要求连接必须使用ssl加密,除了在如nginx这样的HTTP服务器中做相关配置以外,可能还会涉及在Django中做安全连接的要求,即将用户的http连接重定向到https。有以下一些方法可以满足相关需求:一、中间件的使用:在Django中很容易编写自定义中间件以在请求到达视图之前被调用。下面是一个中间件的示例,其可以检测一个请求是否要求安全的连接,如果需要则进行重定向操作:from django.conf import settings    class SecureRequiredMiddlewa...
APR 25, 2013/Django
在include()上包装login_required()
在url.py里,我们可以利用include()包含其他的url.py进来,但这样默认不支持使用login_required再次包装,如下所示的代码:     ...     (r'^blog/', login_required(include('blog.urls'))), )会抛出异常。以下是一种解决方案(参考自StackOverflow):     '''   &nbs...
< 1 2 3 4 > >>