我目前正在从开发服务器迁移到Apache Web制作服务器。
我尝试通过复制它来执行以下操作,然后我可以登录管理面板,但它不显示。
我的app中的admin.py看起来像这样:
import models
from django.contrib import admin
admin.site.register(models.Organization)
这是我的models.py
from django.db import models
class Organization(models.Model):
name = models.CharField(max_length=100)
website = models.URLField()
azon_code = models.CharField(max_length=50)
gooe_code = models.CharField(max_length=50)
cj_code = models.CharField(max_length=50)
我已经重新启动了数据库并重新启动了apache以及可能会做某事。
答案 0 :(得分:11)
你不应该导入如下:
from mysite.myapp.models import Organization
admin.site.register(Organization)
答案 1 :(得分:5)
对我而言,这是非常愚蠢的原因。 我已启用权限。管理员用户没有访问模型的权限。
我向管理员用户授予了权限。它奏效了。
答案 2 :(得分:3)
对于正在访问此问题的人,上述答案不能直接在当前的Django版本(1.7.7)中使用。
上述问题的答案变为:
from myapp.models import Organization
admin.site.register(Organization)
答案 3 :(得分:0)
在管理页面中不显示应用程序的另一个可能原因是Apache没有权限。有时我们创建一个具有Apache无法访问权限的应用程序。如果Apache没有访问权限,则无法显示。对于Linux用户,需要更改应用程序权限。
sudo chown -R www-data:www-data app_name
此命令将允许Apache以递归方式访问app文件夹。
答案 4 :(得分:0)
admin.py
应用中的 main( first and default )
文件中做到
就我而言,我有3个应用,如下
cityapp,stateapp,countryapp
因此我将在admin.py文件中添加以下行
from django.contrib import admin
from stateapp.models import State
from countryapp.models import Country
from cityapp.models import City
admin.site.register(Country)
admin.site.register(State)
admin.site.register(City)
它在我的情况下有效