【问题标题】:How to implement Dashboard in django admin?如何在 django admin 中实现仪表板?
【发布时间】:2015-07-08 09:41:03
【问题描述】:

如何在 django admin 中实现 Dashboard?

如果我在 django 中有以下模型。有没有办法,而不是常规的模型列表,我可以在管理页面中有一个搜索框来使用他的名字搜索学生并显示他的特定详细信息...

class MStudent(models.Model):
    enroll_no = models.IntegerField()
    Name = models.CharField(max_length=200)
    photo = models.ImageField(upload_to="static",blank = True)
    def __str__(self):
       return self.FName+" "+ self.MName+" "+ self.LName
class MStud_Address_ph_no_email(models.Model):
    enroll_no = models.ForeignKey(MStudent)
    Address = models.CharField(max_length=200)
    Personal_mobile= models.IntegerField()
    Fathers_mobile = models.IntegerField()

    def __str__(self):
         return str(self.enroll_no)

【问题讨论】:

    标签: python django admin dashboard


    【解决方案1】:

    来自 Django 管理文档:

    如果您希望更改索引、登录或注销模板,最好创建自己的 AdminSite 实例(见下文),并更改 AdminSite.index_template 、 AdminSite.login_template 或 AdminSite.logout_template 属性。

    因此,您应该创建自己的AdminSite 并将其index_template 属性设置为您的模板,以实现您想要的仪表板。

    要提供搜索和搜索结果视图,请参阅adding views to admin sites

    【讨论】:

    • 编写 def get_urls(self): 和 def my_view(self, request): 不起作用.....my_view 没有被执行....get_urls() 只执行了一次为什么会这样??
    • my_view 将在 /admin/myapp/mymodel/my_view/ 访问(假设管理 URL 包含在 /admin/ 中。)......现在我明白了
    • 唯一的问题是未定义名称“TemplateResponse”
    • @IqbalHawre 如果您覆盖ModelAdmin.get_urls,您将在/admin/myapp/mymodel/my_view/ 访问它,如果您覆盖AdminSite.get_urls,您将在/admin/my_view/ 访问它,这取决于最能满足您的需求.
    • @IqbalHawre 您需要使用from django.template.response import TemplateResponse 导入它。
    【解决方案2】:

    我认为你应该阅读关于 admin 的 django 文档

    如果您想自定义管理外观或添加额外的功能,您需要通过在模板目录中创建一个管理文件夹来覆盖所需的管理模板,例如 admin/index.html

    【讨论】:

      【解决方案3】:

      Q.有没有办法,而不是常规的模型列表,我可以在管理页面中有一个搜索框来使用他的名字搜索学生并显示他的特定详细信息?

      1) 是的,而不是显示常规模型列表,我可以直接重定向到模型 Mstudent。使用以下代码

      urls.py
      from django.http import HttpResponseRedirect
      url(r'^admin/$',lambda x:HttpResponseRedirect('/admin/yourapp/yourmodel'))
      

      2) 使用姓名搜索学生并显示他的详细信息:

      Make  MStud_Address_ph_no_email as inline to MStudent in admin.py.
      

      因此,总而言之,每当用户登录 django admin 时,他将直接看到所有学生的列表,并且通过选择特定学生,他可以看到他的所有详细信息。

      :)

      【讨论】:

        猜你喜欢
        • 2011-06-15
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 2012-10-11
        • 2013-10-02
        • 2021-08-14
        • 2014-06-01
        相关资源
        最近更新 更多