Django中的自定义管理界面

时间:2012-12-26 10:20:49

标签: django django-admin static-files django-staticfiles django-1.4

Django的文档提供了一种安装admin应用的简便方法。 它假定文件的结构如下:

mysite/
    manage.py
    mysite/
          settings.py #adding `admin` under `INSTALLED_APPS`
          __init__.py
          urls.py #adding urls
          wsgi.py
    myapp/
    __init__.py
    admin.py #creating this file
    models.py
    views.py 

我的问题是如果我的结构如下,如何让admin接口工作:

mysite/
      manage.py
      settings.py
      __init__.py
      urls.py
      myapp/
          __init__.py
          forms.py
          models.py
          views.py

为了让admin界面正常工作,我将需要进行哪些各种更改。 [我的其他应用程序正在运行]。 我已多次阅读和阅读文档。 我使用Django 1.4

修改#1

我在运行localhost:8000/admin/

时遇到此错误
error at /admin/
unknown specifier: ?P[

Whole error here

我的urls.py文件包含[在文档中]行:

from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
    (r'^admin/(.*)', include(admin.site.urls)),
)

admin.py文件夹中的myapp文件包含以下代码:

import models
from django.contrib import admin

class PostAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}

admin.site.register(models.Article, PostAdmin)

1 个答案:

答案 0 :(得分:1)

这是您应该包含管理网址的方式:

url(r'^admin/', include(admin.site.urls)),

documentation显示了这一点。

你得到的错误直接来自re python模块,抱怨网址的这一部分:

?P[

您在评论中发布的网址显示为:

url(r'^(?P[-a-zA-Z0-9]+)/?$', 'myapp.views.getPost')

尝试通过为匹配组命名来更改该网址:

url(r'^(?P<slug>[-a-zA-Z0-9]+)/?$', 'myapp.views.getPost')

getPost视图中,添加slug参数。