Django Admin自定义显示字段. html
时间: 2024-05-08 14:16:41 浏览: 303
要自定义Django Admin显示字段,可以使用以下步骤:
1. 在您的应用程序中创建一个admin.py文件(如果还没有)
2. 定义一个模型Admin类,并将其注册到Django Admin中
```python
from django.contrib import admin
from .models import YourModel
class YourModelAdmin(admin.ModelAdmin):
list_display = ('field1', 'field2', 'field3') # 您要显示的字段
admin.site.register(YourModel, YourModelAdmin)
```
3. 在模型Admin类中,使用list_display属性来指定您要在列表页面上显示的字段。您可以指定模型的任何字段,甚至可以使用模型方法来计算字段。
```python
class YourModelAdmin(admin.ModelAdmin):
def custom_field(self, obj):
return obj.field1 + obj.field2
list_display = ('field1', 'field2', 'custom_field') # 使用自定义字段
admin.site.register(YourModel, YourModelAdmin)
```
4. 如果您希望在字段中包含HTML代码,例如链接或图像,可以使用safe属性。
```python
class YourModelAdmin(admin.ModelAdmin):
def custom_field(self, obj):
return '<a href="{0}">{1}</a>'.format(obj.url, obj.name)
custom_field.allow_tags = True # 允许包含HTML代码
list_display = ('field1', 'field2', 'custom_field')
admin.site.register(YourModel, YourModelAdmin)
```
5. 最后,在模型Admin类中定义其他方法和属性,以根据需要自定义Django Admin的行为和外观。
```python
class YourModelAdmin(admin.ModelAdmin):
def custom_field(self, obj):
return '<a href="{0}">{1}</a>'.format(obj.url, obj.name)
custom_field.allow_tags = True
list_display = ('field1', 'field2', 'custom_field')
list_filter = ('field1', 'field2') # 在过滤器中显示其他字段
search_fields = ('field1', 'field2') # 允许搜索其他字段
ordering = ('field1',) # 按其他字段排序
admin.site.register(YourModel, YourModelAdmin)
```
使用上述步骤,您可以轻松地自定义Django Admin显示字段,并根据需要对其进行进一步自定义。
阅读全文