【问题标题】:The model is not displayed in the django admin panel该模型未显示在 django 管理面板中
【发布时间】:2023-02-04 19:08:56
【问题描述】:

我没有在 django 管理面板中显示广告模块。这是模型代码

from django.db import models


class Advertisement(models.Model):
    title = models.CharField(max_length=1000, db_index=True)
    description = models.CharField(max_length=1000, default='', verbose_name='description')
    creates_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    price = models.FloatField(default=0, verbose_name="price")
    views_count = models.IntegerField(default=1, verbose_name="views count")
    status = models.ForeignKey('AdvertisementStatus', default=None, null=True, on_delete=models.CASCADE,
                               related_name='advertisements')

    def __str__(self):
        return self.title

    class Meta:
        db_table = 'advertisements'
        ordering = ['title']


class AdvertisementStatus(models.Model):
    name = models.CharField(max_length=100)

管理员.py /

from django.contrib import admin
from .models import Advertisement

admin.site.register(Advertisement)

我刚刚从 YouTube 上了一门免费课程。在我的其他项目中并非如此。这里我注册的应用程序在INSTALLED_APPS中得到了名称。然后我执行了迁移的创建和迁移本身。然后我尝试使用问题的解决方案 here ,没有任何帮助。我也没有在谷歌搜索中找到解决方案。

【问题讨论】:

    标签: python django sqlite


    【解决方案1】:

    admins.py

    文件名是admin.py不是admins.py.是的,这有点令人困惑,因为 Django 中的大多数模块名称都是复数.基本原理可能是您为定义的模型定义了一个(单个)管理员。

    或者,您可以强制 Django 使用 AppConfig 导入它:

    # app_name/apps.py
    
    from django.apps import AppConfig
    
    
    class AppConfig(AppConfig):
        def ready(self):
            # if admin definitions are not defined in admin.py
            import app_name.admins  # noqa

    【讨论】: