Django中间件线程安全吗?我能做这样的事吗,
class ThreadsafeTestMiddleware(object):
def process_request(self, request):
self.thread_safe_variable = some_dynamic_value_from_request
def process_response(self, request, response):
# will self.thread_safe_variable always equal to some_dynamic_value_from_request?
Run Code Online (Sandbox Code Playgroud) 假设我有以下两个 django (1.3) 模型
from django.db import models
class Patient(models.Model):
name = models.CharField('Name', max_length=50)
class Address(models.Model):
town = models.CharField('Town/Village', max_length=50)
patient = models.OneToOneField(Patient, related_name='address')
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用 django 的序列化程序将 Patient 模型实例序列化为 JSON 时,生成的 JSON 字符串没有地址详细信息(无法遍历一对一关系的反向)
如果我使用 select_related('address') 将地址对象填充到缓存中,则会发生这种情况。IE
from django.core import serializers
>>> print serializers.serialize('json',[Patient.objects.select_related('address').get(id=1)])
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决这个问题吗?
以下示例取自"Javascript:The good parts"一书.作者说,辅助函数返回一个绑定到当前值的函数var i.
任何人都可以解释是什么让它绑定VALUE而不是REFERENCE var i,因为helper函数是一个add_the_handler函数闭包,应该只看到引用var i:
var add_the_handlers = function (nodes) {
var helper = function (i) {
return function (e) {
alert(i);
};
};
var i;
for (i = 0; i < nodes.length; i += 1) {
nodes[i].onclick = helper(i);
}
};
Run Code Online (Sandbox Code Playgroud)