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#.
上面代码的问题是它为每个编号的模型创建了一个顶级链接.
您需要自己的更改列表来执行此操作:
class MyChangeList(ChangeList):
def url_for_result(self, result):
link = your_function_to_create_link()
return link
Run Code Online (Sandbox Code Playgroud)
然后使用你Changelist的ModelAdmin:
class MyModelAdmin(admin.ModelAdmin):
def get_changelist(self, request, **kwargs):
return MyChangeList
Run Code Online (Sandbox Code Playgroud)