2012-01-26 2 views
3

Я пытаюсь проделать свой путь через Практические проекты Django. Кажется, это немного устарело, но мне удалось преобразовать код до этого момента.Модель FlatPage уже зарегистрирована

На данный момент книга хотела бы меня изменить мой models.py быть таким:

class SearchKeyword(models.Model) 
    keyword = models.CharField(maxlength=50, core=True) 
    page = models.ForeignKey(FlatPage, edit_inline=models.STACKED, 
          min_num_in_admin=3, num_extra_on_change=1) 

Я знаю, что теперь это делается в admin.py вместо этого. Так что мой models.py выглядит следующим образом:

from django.db import models 
from django.contrib.flatpages.models import FlatPage 

class SearchKeyword(models.Model): 
    keyword = models.CharField(max_length=50) 
    page = models.ForeignKey(FlatPage) 

    class Admin: 
     pass 

    def __unicode__(self): 
     return self.keyword 

И admin.py я создал теперь выглядит следующим образом:

from search.models import SearchKeyword 
from django.contrib import admin 
from django.contrib.flatpages.models import FlatPage 

class SearchKeywordInline(admin.StackedInline): 
    model = SearchKeyword 
    extra = 3 

class FlatPageAdmin(admin.ModelAdmin): 
    model = FlatPage 
    inlines = [SearchKeywordInline] 

admin.site.register(FlatPage, FlatPageAdmin) 

Когда я загружаю страницу администратора, я получаю:

AlreadyRegistered at /admin/ 

The model FlatPage is already registered 

Exception Value:The model FlatPage is already registered 

Спасибо!

ответ

7

Вы должны отменить его первый как приложение самостоятельно корабли с admin.py

admin.site.unregister(FlatPage) 
admin.site.register(FlatPage, FlatPageAdmin) 
+0

достаточно легко. Спасибо. –

Смежные вопросы