Django: 如何在管理界面显示有用的数据库数据?
我设置了我的Django网站,使用了下面的admin.py:
import models
from django.contrib import admin
admin.site.register(models.Comment)
这个文件用的是这个models.py:
from django.db import models
class Comment(models.Model):
text = models.CharField(max_length=400)
name = models.CharField(max_length=100)
date = models.DateTimeField(auto_now = True)
article = models.CharField(max_length=100)
但是,当我访问管理页面时,看到的是这样的:
这对我来说并没有什么帮助。点击每个链接会显示该对象的数据,但我希望能在这个视图中看到每个对象的信息。我一直在查看ModelAdmin类,地址是:
https://docs.djangoproject.com/en/dev/ref/contrib/admin/
但我还是没搞明白。这个ModelAdmin是一个需要和我“实际”模型保持同步的独立模型类吗?还是说它只是一个接口,让我的管理网站可以访问实际模型?它能做到我想要的(在管理界面显示有用的数据)吗,还是说它有其他的功能?
我在想,Django的管理页面应该能替代PHPMyAdmin,完成一些简单的任务,比如浏览数据库和手动修改单个对象。这真的是这样吗?
2 个回答
4
就像在文档中说的,你的模型的ModelAdmin
部分是用来描述管理界面如何展示你的模型的。它需要和实际的模型保持一定的一致性,比如说你不能显示那些在模型中不存在的字段。你似乎对变更列表视图感兴趣,这个视图有很多自定义的选项(这些都在文档里有详细说明,还有教程)。一个简单的开始可以是:
from django.contrib import admin
class CommentAdmin(admin.ModelAdmin):
# define which columns displayed in changelist
list_display = ('text', 'name', 'date', 'article')
# add filtering by date
list_filter = ('date',)
# add search field
search_fields = ['text', 'article']
admin.site.register(Comment, CommentAdmin)
有很多自定义的选项,记得随时参考文档!最后,你当然可以用它来替代PHPMyAdmin,设置管理界面来浏览和修改对象非常简单,使用的效果就看你怎么利用它了。