только для записи (потому что у меня ничего не получалось):
У нас была только сетчатка-графика в наших проектах. После обновления до XCode 5
все изображения имели белый вопросительный знак (только в Interface Builder
, а не в Simulator
). Мы переключили источник изображения на non-retina
, что решило проблему!
Использование btn-category-6.jpg
решило проблему!
Ваш подход хорош - вы просто не видите результата, потому что старая модель плоской страницы зарегистрирована в админке, а новая - нет. Вот что вы можете сделать в своем новом приложении admin.py (используя менее двусмысленное именование, чем то, что у вас есть выше):
from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.forms import FlatpageForm
from django.contrib.flatpages.models import FlatPage
from models import ExtendedFlatPage
class ExtendedFlatPageForm(FlatpageForm):
class Meta:
model = ExtendedFlatPage
class ExtendedFlatPageAdmin(FlatPageAdmin):
form = ExtendedFlatPageForm
fieldsets = (
(None, {'fields': ('url', 'title', 'content', 'sites', 'order')}),
)
admin.site.unregister(FlatPage)
admin.site.register(ExtendedFlatPage, ExtendedFlatPageAdmin)
Очевидно, здесь происходит несколько вещей, но, что наиболее важно, модель FlatPage не регистрируется, а Вместо нее регистрируется модель ExtendedFlatPage.
И метод в вашем сообщении не работает, потому что ...?
Если по какой-то причине вам действительно нужно возиться с встроенный класс FlatPage и отредактировать его динамически, вы можете подключиться к сигналу class_prepared:
http: //docs.djangoproject. com / en / dev / ref / signal / # class-prepare
Edit
Вот как это сделать с помощью class_prepared:
from django.db.models.signals import class_prepared
from django.db import models
def alter_flatpages(sender, **kwargs):
if sender.__module__ == 'django.contrib.flatpages.models' and sender.__name__ == 'FlatPage':
order = models.IntegerField()
order.contribute_to_class(sender, 'order')
class_prepared.connect(alter_flatpages)
Поместите это, скажем, в 'signal.py' в тот же каталог в качестве вашего settings.py и добавьте «сигналы» в начало (это важно, чтобы гарантировать своевременную установку обработчика сигналов) списка INSTALLED_APPS.
Однако это все равно выиграло ». t получить поле, отображаемое в Admin, потому что для FlatPages есть собственный класс ModelAdmin, который явно перечисляет поля. Поэтому после того, как он будет зарегистрирован в приложении Flatpages, вам нужно будет где-нибудь отменить его регистрацию (admin.site.unregister) и зарегистрировать собственный ModelAdmin.
в том же каталоге, что и ваш settings.py, и добавьте 'сигналы' в начало (это важно, чтобы гарантировать своевременную установку обработчика сигналов) списка INSTALLED_APPS.Однако, это все равно не приведет к отображению поля в Admin, потому что для FlatPages есть собственный класс ModelAdmin, который явно перечисляет поля. Поэтому после того, как он будет зарегистрирован в приложении Flatpages, вам нужно будет где-нибудь отменить его регистрацию (admin.site.unregister) и зарегистрировать собственный ModelAdmin.
в том же каталоге, что и ваш settings.py, и добавьте 'сигналы' в начало (это важно, чтобы гарантировать своевременную установку обработчика сигналов) списка INSTALLED_APPS.Однако, это все равно не приведет к отображению поля в Admin, потому что для FlatPages есть собственный класс ModelAdmin, который явно перечисляет поля. Поэтому после того, как он будет зарегистрирован в приложении Flatpages, вам нужно будет где-нибудь отменить его регистрацию (admin.site.unregister) и зарегистрировать собственный ModelAdmin.
sa пользовательский класс ModelAdmin для FlatPages, который явно перечисляет поля. Поэтому после того, как он будет зарегистрирован в приложении Flatpages, вам нужно будет где-нибудь отменить его регистрацию (admin.site.unregister) и зарегистрировать собственный ModelAdmin. sa пользовательский класс ModelAdmin для FlatPages, который явно перечисляет поля. Поэтому после того, как он будет зарегистрирован в приложении Flatpages, вам нужно будет где-нибудь отменить его регистрацию (admin.site.unregister) и зарегистрировать собственный ModelAdmin.