小编Mam*_*aac的帖子

在尝试编辑/创建时,Django管理员会挂起(直到超时错误)特定模型

这个让我现在疯了.之前没有发生过(因为客户需要它,我甚至得到了用户手册的截图).

我首先在生产服务器上注意到它然后我检查并且也发生在Django附带的开发服务器中.该模型出现在django管理员的主页上,我可以点击它,它将显示销售点列表.每当我想编辑现有实例或创建新实例时,问题就出现了.

我只需点击链接(或将其放在栏上)它就会挂起.

class PointOfSaleAdmin(admin.ModelAdmin):
    list_display = ('id','business', 'user', 'zipcode', 'address','date_registered')
    list_filter = ('business',)
    filter_horizontal = ('services',)
admin.site.register(models.PointOfSale, PointOfSaleAdmin)
Run Code Online (Sandbox Code Playgroud)

这是模型的注册.所有模型都在管理应用程序中注册,用户测试这是超级用户.该模型是:

class PointOfSale(models.Model):
    user = models.ForeignKey(User)
    zipcode = models.ForeignKey(Zipcode)
    business = models.ForeignKey(Business)
    services = models.ManyToManyField(Service, 
        verbose_name='available services')
    date_registered = models.DateField(auto_now_add=True)
    address = models.CharField(max_length=300)
Run Code Online (Sandbox Code Playgroud)

加上一些不太重要的方法.另外,在此之前的最后一次我测试了管理员是在我创建所有这些方法后,所以它应该无关紧要.

管理员很少需要访问此页面.通常它只是列出PoS,但它仍然困扰我.知道为什么它可以挂?所有其他型号都运行得很好.

这在Django 1.2.5和1.3上都有发生

编辑:

我修改了超时限制.它工作正常,但不知何故,实际发生它需要几分钟.所以,背景中的某些东西需要很长时间.我不明白为什么它只发生在这个模型上,它发生在不同的环境中(和小数据集)


我差点想拍打自己.我没有睡这么久的错.

问题是邮政编码列表相当大(数十万),外键字段作为html选择标记加载,这意味着它加载每一个条目.这是一个简单的数据有多少的问题.

现在我想知道如何控制外键在admin中的显示方式.任何人都可以帮忙吗?

python django django-admin

25
推荐指数
3
解决办法
5396
查看次数

在NodeJS上打开图像并找出宽度/高度

非常感谢您提供未来的帮助.我需要的是相当于一个"new Image()"(然后是myImage.src ......等)但是在NodeJS上.我会感谢那些在我内心深处迅速回答的人......好吧,也说"谢谢!" :P

javascript image node.js

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

MPRIS + Python(dbus):读写属性

我已经检查了这个链接:如何使用python处理dbus接口的属性.但是,这只列出了一个API ...但我不知道该API的来源.

我刚开始使用dbus(对此非常兴奋,说实话^ __ ^对我发现的文档不太满意)在python上,我想知道我是否可以获得一些示例代码.

我专门为Rhythmbox使用MPRIS,尽管它应该对所有人都一样.

我知道我可以通过以下方式访问并享受方法:

import dbus
bus = dbus.SessionBus()
proxy = bus.get_object('org.mpris.MediaPlayer2.rhythmbox','/org/mpris/MediaPlayer2')
player = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Player')
playlists = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Playlists')
tracklist = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.TrackList')
Run Code Online (Sandbox Code Playgroud)

但是,我希望了解房产.一些示例代码就足够了:)谢谢!

python linux dbus

13
推荐指数
1
解决办法
5602
查看次数

在方案中使用两个递归调用转换函数以使其呈尾递归

在我开始之前:是的,这是大学的家庭作业.在我被告知我是懒惰和邪恶之前:这部分功课是转换我们已经拥有的两个功能,这个是第6个.

(define (flatten-list a-list)
  (cond ((null? a-list) '())
      ((list? (car a-list)) 
       (append (flatten-list (car a-list)) (flatten-list (cdr a-list))))
      (else (cons (car a-list) (flatten-list (cdr a-list))))))
Run Code Online (Sandbox Code Playgroud)

正如您所猜测的,该函数即使嵌套也会使列表变平.转换的具体问题出现在(list?(car a-list))条件中,我正在进行两次递归调用.我已经做了斐波纳契,我可以通过在尾递归上只有两个"累加器"来做.但是,我还没有接受过这方面的培训,也不知道应该怎么做.

如果我得到提示而不是结果,我将不胜感激.谢谢!

scheme functional-programming tail-recursion

6
推荐指数
1
解决办法
741
查看次数

Nodejs:Express + RedisStore,req.session undefined

我之前已经这样做了......这次我没有按照我做错的事情,但是我已经苦苦挣扎了几个小时,现在认为自己被精神上阻挡了.相应的代码:

app.use(express.bodyParser());
app.use(i18next.handle);
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'swig');
app.set('view cache', false);
var session_store = new RedisStore({ client : redis_client});
app.use(express.errorHandler({ dumpExceptions : true, showStack : true}));
app.use(express.cookieParser());
app.use(express.session({ store : session_store, secret : SESSION_SECRET, key : "sid" }));
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

然后在处理请求时,这只是一个例子:

app.get('/session_test', function (req, res, next) {
  console.log(req.session); //undefined
});
Run Code Online (Sandbox Code Playgroud)

连接到redis工作得很好.没有显示错误.然后,当尝试从请求访问它时,req.session未定义.浏览器正在发送正确的sid.

我不是请求期间发生的确切流的专家,但在调试之后,似乎路由器在会话中间件之前被调用.

提前感谢任何和所有可能的帮助.我会提供任何我能提供的代码,我不确定你的帮助是什么.

这是更多的代码.server.js

  //Dependency modules
var express = require('express'),
  app = express.createServer(),
  //Application dependency modules
  settings = require('./settings'), //app settings
  routes = require('./routes'), //http …
Run Code Online (Sandbox Code Playgroud)

connect node.js express

5
推荐指数
1
解决办法
3928
查看次数

crypto.createCipheriv - > cipher.update + cipher.final不返回Buffer?

我创建了一个传递两个缓冲区的密码.buf1是键,32字节缓冲区,buf2是IV,也是32字节缓冲区,我切片只使用16字节.文档说cipher.update和cipher.final在没有指定任何内容时返回缓冲区.这实际上就是我希望发生的事情.虽然我想我可以做一个新的缓冲区(加密,'二进制')来转换它,我想知道我是否可能做错了什么.

> var cipher = crypto.createCipheriv('aes-256-cbc', buf1, buf2.slice(0,16));
undefined
> var crypted = cipher.update(new Buffer('this is some test'));
undefined
> crypted += cipher.final();
'!t\u001f\u0004>.\u0012\u0001???K\u001bSiA?]3\u0017?6?&?.??\u0015?V?'
0> Buffer.isBuffer(crypted)
false
Run Code Online (Sandbox Code Playgroud)

http://nodejs.org/api/crypto.html#crypto_class_cipher

我正在使用node.js版本0.10.10,这是最新的稳定版,据说与链接的文档匹配:

$ node -v
v0.10.10
Run Code Online (Sandbox Code Playgroud)

这是文档错误还是我的错误?我知道用v0.8 pbkdf2返回一个二进制字符串而不是缓冲区,现在用0.10.10返回一个缓冲区,如文档所述.我希望密码也可以使用缓冲区而不是使用二进制...来保持一致性.

javascript node.js

3
推荐指数
1
解决办法
2016
查看次数