这一个现在正在让我疯狂。之前没有发生过(因为客户需要它,所以我必须为用户手册做必要的截图)。当试图编辑/创建时,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)
这就是模型的注册。所有模型都在管理员应用程序中注册并且用户测试这是一个超级用户。该模型是:
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)
再加上几个方法,应该没什么关系。另外,在我创建所有这些方法之后,我测试管理员的权利之前的最后时间,所以这应该不重要。
管理员很少必须访问此页面。通常它只是列出了PoS,但它仍然困扰着我。任何想法为什么它可以挂?所有其他型号都可以正常工作。
这是发生在两个Django的1.2.5和1.3
编辑:
我修改了超时限制。它正在工作,但不知何故它需要几分钟才能真正发生。所以,背景中有些东西需要时间。我不明白怎么就只发生这种模式,它在不同的环境发生(与小数据集)
我几乎觉得自己打耳光。我的错不睡这么久。
问题是,邮政编码列表相当大(几十万),外键字段作为html选择标签加载,这意味着它加载每一个条目。简单来说,这是一个有多少数据的问题。
现在我不知道如何控制外键在管理中显示的方式。任何人都可以帮忙吗?
有趣的问题与一个有趣的答案。我在上个月内已经犯了这个错误 - 用大数据集测试你的应用程序,因为当你相信你已经测试了所有东西时,跟踪这样的问题并不明显。 – 2011-05-01 21:40:54