这件事现在快把我逼疯了.这是以前没有发生过的(因为客户需要,我甚至得到了我必须为用户手册做的屏幕截图).

我首先在生产服务器上注意到了这一点,然后判断了Django附带的dev服务器.该模型出现在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)

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

管理员很少需要访问此页面.通常它只是列出位置,但它仍然困扰着我.你知道它为什么会挂起来吗?所有其他型号都工作得很好.

Django 1.2.5和1.3都出现了这种情况

编辑:

我修改了超时限制.它正在工作,但不知何故,它需要几分钟才能真正发生.因此,背景中有一些东西需要花费很长时间.我不明白为什么这种情况只发生在这个模型上,而且发生在不同的环境中(以及小数据集上)


我几乎想扇自己一巴掌.我的错是我睡不着这么久.

问题是邮政编码列表非常大(几万),并且外键字段作为html select标记加载,这意味着它加载每个条目.这只是一个有多少数据的问题.

现在我想知道如何控制外键在管理员中的显示方式.有人能帮上忙吗?

推荐答案

在admin.py文件中,在适当的admin类下设置

raw_id_fields = ('zipcode',)

这将显示邮政编码的PK,而不是下拉列表.

有没有理由将邮政编码设置为自己的型号,而不是使用Charfield或实际的邮政编码modelfield

Django相关问答推荐

Django模型ManyToManyField.Add不起作用

Django/SendGrid-密码重置-发件人地址与验证的发件人身份不匹配.";

django优化查询

从一个组中获取所有用户 - Django

使用django提交后如何保留html表单数据?

django 创建多种类型用户的最佳方法

初始填充 Django 表单

django - 表单没有错误,但 form.is_valid() 没有验证

Django 表单有 Select 但也有自由文本选项?

在 Bootstrap 中使单击的选项卡处于活动状态

如何在 forms.Form 子类上动态设置 models.ModelChoiceField 的查询集

Django App 配置不当 - 应用程序模块有多个文件系统位置

这是验证 Django 模型字段的方法吗?

Django模型字段按变量

Django:从视图中添加 non_field_error?

在 Django 中使用 Cython,是否有意义?

import_module 的 Django 1.9 ImportError

1 个 django 应用程序中约有 20 个模型

为整个结果集向 Django Rest Framework 结果添加额外数据

如何在 Python 中运行另一个脚本而不等待它完成?