django на vps - получение "модель уже зарегистрирована" при перезапуске сервера - PullRequest
3 голосов
/ 29 ноября 2010

задавал этот вопрос на выходных, но по какой-то причине все ответы умерли. начал снова, так как у меня теперь есть новая информация

когда я перезагружаю Apache на моем VPS, я получаю

the model "category" is already registered

из init.py

Я думаю, это потому, что объект обнаруживается и регистрируется дважды.

я не думал, что это будет проблемой, не в dev, где я не получаю эти ошибки. Кроме того, я не получаю сообщение об ошибке при первом запуске сервера после syncdb.

загрузите код, syncdb, запустите apache, сообщения об ошибке нет. перезапустите apache и появится сообщение об ошибке.

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

это происходит только в первый раз после сброса apache, а не в последующие.

кто-нибудь сталкивался с этим раньше? использование apache с mod_wsgi в Debian, django 1.2.3

Ответы [ 2 ]

4 голосов
/ 29 ноября 2010

В сообщении об ошибке указывается, что код регистрации модели повторяется. Вы регистрируете свои модели в файле models.py? Рекомендуемый способ - написать отдельный файл admin.py для регистрации моделей.

1 голос
/ 22 ноября 2016

Это может быть связано с порядком, в котором вы подклассифицировали другие модели.Например, если вы подклассом Django-polymorphic's PolymorphicModel и другой моделью, например, Django-extensions 'TimeStampedModel, вам необходимо сначала создать подкласс PolymorphicModel, иначе возникнет эта ошибка:

class MyClass(TimeStampedModel, PolymorphicModel):  # Raises error
class MyClass(PolymorphicModel, TimeStampedModel):  # Does not raise error
...