我有一个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向用户发出密钥而导致服务器内存不足?
有没有办法解决这个问题?
答案 0 :(得分:0)
您可能希望将user
设为raw_id_fields
字段,因此Django不会尝试加载这50,000个User对象。
class FooAdmin(...):
# ...
raw_id_fields = ('user',)
如果您使用的是Django 2.0+,则也可以使用autocomplete_fields
。