首页 > 解决方案 > 在 Django Admin 中保存模型时出错,许多 FK 对象指向它

问题描述

使用 Django==2.2.4

parties在假Django 应用程序中使用假模型的问题示例:

class CakeModel(models.Model):
    . . .

class CandleModel(models.Model):
    . . .
    cake = models.ForeignKey(
        'parties.CakeModel',
        related_name='candles',
        on_delete=models.SET_NULL,
    )
    . . .

Django 管理页面:

class CandleModelAdmin(admin.TabularInline):
    model = models.CandleModel
    extra = 0
    fields = [..., some_field, ...]

    def get_queryset(self, request):
        '''Override to display less items in the admin page'''
        qs = super().get_queryset(request)
        # exclude some items from the QuerySet
        return limited_qs

@admin.register(models.CakeModel)
class CakeModelAdmin(admin.ModelAdmin):
    list_select_related = True
    inlines = (..., CandleModelAdmin, ...)

    list_display = (..., some_field, ...)

CakeModel当 a很少有人CandleModel指向它时,没有问题。我有一些大约有 700 个,并且我正在使用假的 1000 个进行测试。
每当我保存页面时,保存页面需要永远保存(30 多秒),有时会超时并显示错误页面。
我可以做些什么来防止CakeModel管理页面在编辑CakeModel字段时出错,然后单击"save""save and continue editing"
我可能还需要添加另一个CandleModel,或编辑一个CandleModel.

我尝试覆盖save_model(), save_related(), response_change(),但不知道如何继续。

谢谢!

标签: djangodjango-admindjango-2.2

解决方案


推荐阅读