Question

Django's documentation provides an easy way of installing admin app. It assumes the structure of files as follows:

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 

My question is how to get the admin interface to work if my structure is as follows:

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

What will be the various changes that I will have to incorporate to get the admin interface working. [my other apps are working]. I have read and read the documentation several times. I'm using Django 1.4.

EDIT#1

I'm getting this error on running localhost:8000/admin/:

error at /admin/
unknown specifier: ?P[

Whole error here.

My urls.py file has the lines [as in the docs]:

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

My admin.py file in the myapp folder has the code:

import models
from django.contrib import admin

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

admin.site.register(models.Article, PostAdmin)
Was it helpful?

Solution

This is how you're supposed to include the admin urls:

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

The documentation shows this.

The error that you're getting is coming straight from the re python module, complaining about this part of a url:

?P[

The URLs you've posted in your comment beneath show this:

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

Try changing that url by giving the match group a name:

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

And in your getPost view, include a slug argument.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top