Django Admin:显示模型列表

pyC*_*hon 7 django django-admin

我在用Django 1.8.8.

我有很多模型定义如下:

class MainModel(models.Model):
    value = models.IntegerField(null=False, editable=True, default=20)
    dt_modified = models.DateTimeField(null=True, auto_now=True)

class MyModel1(MainModel, models.Model):
    name = models.CharField(null=False, editable=False, max_length=50)

class MyModel2(MainModel, models.Model):
    foo = models.CharField(null=False, editable=False, max_length=50)
Run Code Online (Sandbox Code Playgroud)

我的管理页面目前正如此设置,

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('value', 'dt_modified')
    search_fields = ['value']
    date_hierarchy = 'dt_modified'

models = [MyModel1, MyModel2]
admin.site.register(models, MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)

我想设置我的管理页面如下:在首页上有一个链接/admin,"MainModels"指示我到另一个页面,我可以从所有派生模型的列表中选择MyModel,即[MyModel1, MyModel2, ....MyMoneyN]允许我编辑选定的派生模型.MyModel#.

上面代码的问题是它为每个编号的模型创建了一个顶级链接.

Kar*_*lis 1

您需要自己的更改列表来执行此操作:

class MyChangeList(ChangeList):
    def url_for_result(self, result):
        link = your_function_to_create_link()
        return link
Run Code Online (Sandbox Code Playgroud)

然后使用你ChangelistModelAdmin

class MyModelAdmin(admin.ModelAdmin):
    def get_changelist(self, request, **kwargs):
        return MyChangeList
Run Code Online (Sandbox Code Playgroud)