【问题标题】:Issue adding an app to django admin and displaying the models将应用程序添加到 django admin 并显示模型的问题
【发布时间】:2020-03-09 14:33:37
【问题描述】:

我是 django 新手,我有一个非常基本的项目,结构如下

[django_test
├── django_test
│   ├── settings.py
│   ├── templates
│   │   ├── base.html
│   │   ├── current_age.html
│   ├── urls.py
│   ├── views.py
├── my_app
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
├── requirements.txt][1]

我已经运行了我的项目,我得到了一些作为初始 django 管理屏幕的东西

但是正如您所看到的,我在项目中有一个名为 my_app 的应用程序,并且在 my_app 的路径中,我有一个模型文件,其中一些模型为 Model1、Model2、Model3,在我在仪表板中看到的其他 django 项目中比在其他可以访问您的模型,以便从那里添加、删除、查阅和编辑。

我错过了哪个附加步骤?

【问题讨论】:

  • 您能否进一步说明您所看到的与您预期看到的?

标签: python django django-models django-admin


【解决方案1】:

您应该将模型注册到管理员中:

my_app/admins.py

from django.contrib import admin
from . import models


admin.site.register(models.Model1)
# and for other models as well

【讨论】:

    【解决方案2】:

    我不确定这是否是您正在寻找的 wath,但让我们尝试一下: 我认为您已经在设置文件的 INSTALLED_APPS 中安装了 django.contrib.admin,这就是为什么您能够看到仪表板的原因,因为要将模型添加到该仪表板,您只需要编辑应用程序的 admin.py 文件即可您需要添加到仪表板,在这种情况下 my_app.admin.py 在该文件中您应该导入模型并注册它,例如:

    from django.contrib import admin
    from myapp.models import Foo, Bar, Baz
    
    
    admin.site.register(Foo)
    admin.site.register(Bar)
    admin.site.register(Baz)
    

    之后,您应该会在仪表板中看到包含应用名称和已发布模型的部分

    我希望它对您有用,否则请提供更多详细信息,也许可以添加有关您希望如何显示仪表板的图像。

    【讨论】:

      【解决方案3】:

      settings.py 中使用 INSTALLED_APPS 包含您的应用,并在 admin.py (docs) 中注册您的应用:

      from django.contrib import admin
      from . import models
      
      admin.site.register(models.YourModelName)
      

      【讨论】:

        猜你喜欢
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多