Django admin list display links自定义详情页
时间: 2024-12-10 12:38:32 浏览: 14
Django的Admin界面允许你在列表视图中添加链接以快速访问每个模型实例的详细信息。当你想要自定义某个模型的详情页面显示时,可以在`admin.py`文件中为相应的ModelAdmin类定义`get_urls()`方法,并在其中创建一个自定义的view函数。然后,在`list_display`属性中,你可以添加一个包含链接的字段名,例如:
```python
from django.contrib import admin
from .models import YourModel
class YourModelAdmin(admin.ModelAdmin):
list_display = ['field1', 'field2', 'your_custom_link']
def get_urls(self):
urls = super().get_urls()
custom_urlspatterns = [
path('your_custom_url/<int:pk>/', self.custom_detail_view, name='custom_detail'),
]
return custom_urlspatterns + urls
def custom_detail_view(self, request, pk):
instance = YourModel.objects.get(pk=pk)
# 这里可以根据pk查询并准备数据,最后返回到一个模板中展示
context = {'instance': instance}
return admin.site.render_to_response(request, 'admin/your_model/custom_detail.html', context)
# 注册你的模型到admin
admin.site.register(YourModel, YourModelAdmin)
```
在这个例子中,`your_custom_link`会在列表中显示为一个链接,点击后会跳转到`custom_detail_view`,传递给该视图的`pk`会被用于查询数据库获取具体的模型实例。
阅读全文