添加或编辑对象时,Django管理员崩溃

时间:2019-01-18 13:26:02

标签: django

我有一个Django模型:

class Foo(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT)

    def __str__(self):
        return self.user.username

将管理员注册为模型管理员。

当我尝试编辑现有的Foo对象(我首先使用SQL将其直接添加到数据库中)或单击“添加”以创建新的Foo对象时,服务器崩溃。这与以下事实有关吗:User表包含大约50,000个对象,并且服务器在尝试加载Foo admin时由于OneToOne向用户发出密钥而导致服务器内存不足?

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可能希望将user设为raw_id_fields字段,因此Django不会尝试加载这50,000个User对象。

class FooAdmin(...):
    # ...
    raw_id_fields = ('user',)

如果您使用的是Django 2.0+,则也可以使用autocomplete_fields