Joe*_*Joe 1 django django-models django-admin
在我的Django管理员中,当我尝试查看/编辑来自某个特定模型类的对象时,内存使用情况和CPU会发出警报,我必须重新启动服务器.我可以很好地查看对象列表,但是当我点击其中一个对象时会出现问题.其他型号都很好.在代码中使用对象(即创建和显示)是可以的,只有在我尝试使用管理界面查看对象时才会出现问题.这堂课甚至不是特别奇特:
class Comment(models.Model):
user = models.ForeignKey(User)
thing = models.ForeignKey(Thing)
date = models.DateTimeField(auto_now_add=True)
content = models.TextField(blank=True, null=True)
approved = models.BooleanField(default=True)
class Meta:
ordering = ['-date']
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我很难过.我能想到的唯一原因可能是它thing是一个相当大的对象(几kb),但据我所知,它只有在需要时才会被加载(正确吗?).
这不是一个关于Thing对象有多大的问题,而是你的数据库中有多少.这是因为对于ForeignKey,默认情况下Django的管理员会为您提供一个包含所有现有项目的下拉列表.如果你有很多很多,那么Django将加载它们以填充该列表.用户也是如此.
解决此问题的最佳方法是将违规字段添加到raw_id_fieldsModelAdmin子类中.这将使用弹出查找窗口将表示更改为id的简单文本字段.
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |