因此,我使用以下 admin.py 设置了我的 django 站点:

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)

但是,当我转到管理页面时,它显示以下内容:

这通常不是很有帮助。单击每个链接会显示一个包含该对象数据的页面,但我希望能够在此 View 中查看每个对象的信息。我一直在查看 ModelAdmin 类:

https://docs.djangoproject.com/en/dev/ref/contrib/admin/

但还没有设法解决它。它是一个需要与我的“实际”模型保持同步的单独模型类吗?它只是我的管理站点访问实际模型的接口(interface)吗?它是做我想做的(允许在管理界面中显示有用的数据)还是做其他事情?

我认为 Django 管理页面应该能够替换 PHPMyAdmin 来完成简单的任务,比如浏览数据库和手动修改单个对象。是这样吗?

最佳答案

正如在 documentation 中所说,您模型的 ModelAdmin 描述了 admin 部分将如何表示您的模型。它确实需要与实际模型有些同步,显示模型中不存在的字段对您来说没有意义,等等。您似乎对更改 ListView 感兴趣,它具有许多自定义选项(所有在文档和 tutorial 中描述)。一个简单的开始可能是:

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,设置 admin 用于浏览、修改对象等非常容易,您从中得到多少使用取决于您。

关于python - Django:在管理界面中显示有用的数据库数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7143679/

10-14 18:09
查看更多