我正在使用django 1.8.6,并使用python manage.py startproject在virtualenv中创建了一个新的应用程序。我已经设置了我的安装APPS和我的数据库设置(postgresql),我已经运行迁移来创建后端。到目前为止一切似乎都很好然后我使用createsuperuser命令创建了一个超级用户,而且一切似乎都很顺利。我的admin.py文件已就绪,其内容如下:
from django.contrib import admin
from django.contrib.admin import AdminSite
from myapp.models import mymodel
Class mymodelAdmin(admin.ModelAdmin):
list_display = {col1, col2, col3}
admin.site.register(mymodel, mymodelAdmin)
所有看似相当简单的标准东西,到目前为止都很好。
我使用apache渲染我的网页并配置了我的虚拟主机内容我可以愉快地登录我的管理页面,看到我注册的所有内容以及默认的django管理员资料。我可以创建一个没有问题的新用户,我可以创建一个没有问题的新组。我遇到麻烦的地方是我无法为我的新用户或我的组分配任何标准权限。我可以看到我的数据库中的权限列表没有问题,但我需要单击以将权限从可用转移到已分配的按钮似乎已禁用,我无法在任何地方或任何可能帮助我的教程或博客中找到任何信息解开这个问题。我已经能够在我按照各种不同的教程完成的每个安装上复制这个,但我仍然遇到同样的问题。
任何人都可以对我失踪的事情有所了解吗?提前谢谢。
更新:因此我的静态文件似乎存在问题。我还没有为应用程序创建我自己的任何静态文件,因此唯一的静态文件是我使用pip安装所有内容时安装的文件。我在项目中使用虚拟环境(env),结构如下:
/var/www/<my project>/env
/manage.py
/<my app>/settings.py
/urls.py
/wsgi.py
/templates
/static
/media
我的项目静态目录是空的,因为我相信collectstatic应该收集所有静态文件并将它们放在这里。所有其他静态文件都存储在我的虚拟环境中的site-packages目录中,但显然它们没有被访问。我们将非常感激地提供任何帮助。
答案 0 :(得分:0)
解决了问题......万岁!这是一个艰难的,因为除了一件小事,一切看起来都很好。权限!但问题根本没有权限。一只红鲱鱼我害怕。这个问题与静态文件有关,并试图了解正在进行的事情并确保您的路径全部排序。
对于新手,关键是将主静态文件目录指定为空目录。这是故意的,因为collectstatic例程将为您填充它。在我看来,在安装了在INSTALLED_APPS中定义的任何应用程序或插件后,您应该运行此例程。此例程将关闭并找到这些应用程序需要正常工作的所有静态文件,并将它们复制到基本静态目录。 (确保正确设置了此目录的权限,否则它不会写新的子目录等。)一旦复制,您将在静态目录中看到一个子目录列表,它们分别包含每组静态文件,因为它们不会#39 ; t互相覆盖。遵循这个理论,一切都会好起来的。通过扩展为应用程序创建自己的静态文件时,应将它们保存在文件夹中的单独静态目录中。在此范围内,您应该有另一个名称与您的应用程序相同的目录,并且所有静态文件都应该存储在那里。然后,当您再次运行collectstatic例程时,它会将所有静态文件复制到基本静态目录,并将它们整齐地存储在您自己的应用程序的子目录中,以免与其他目录冲突。
所以从本质上讲,您在以下路径中有两个静态文件夹: / var / www // static(在与manage.py相同的级别留空) /无功/网络///静态/
我已经阅读了很多(并且撕掉了很多头发)来达到这一点。在某个地方,我读过某人的帖子,他说基础静态目录(空的目录)是一个红色的鲱鱼,你应该删除它。我相信这是错误的建议。 唷!到了那里,希望这有助于其他人。