2009-06-12 3 views
1

Я изменил модель, синхронизируются с БД, и теперь, когда я делаю:Django чтение старой модели?

Prs = Products.objects.filter(PrName__icontains='bla') 

Я получаю ошибку:

ERROR: column search_products.pr_name does not exist 
LINE 1: SELECT "search_products"."id", "search_products"."pr_name", ... 

Но pr_name была старая модель, это, как новая модель выглядит например:

class Products(models.Model): 
    PrName = models.CharField(max_length=255) 
    PrDescription = models.CharField(max_length=4000) 
    PrPrice = models.DecimalField(max_digits=5, decimal_places=2) 
    PrCompany = models.ForeignKey(Companies) 

    def __str__(self): 
    return self.PrName 

Почему я получаю эту ошибку? Я синхронизировал db 100 раз, проверил весь код, нет ссылки на pr_name в любом месте?

ответ

2

вы пробовали перезагрузить сервер? Если вы используете что-либо, кроме сервера разработки , вам, вероятно, понадобится сделать это вручную после мака такие изменения.

+0

Deus Harold, вы правы! Я полностью забыл, что не использовал сервер разработки, мне нужно перезапустить apache после каждого изменения! – R0b0tn1k

0

К сожалению, что вы пытаетесь сделать, это not supported Джанго из коробки :-(

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

Также обратите внимание на различные schema evolution решения там

+0

Его проблема не в новом поле, которое требует миграции, но его ошибка указывает на то, что старое поле (уже не в моделях) запрашивается, а не в базе данных (т. Е. Syncdb работает должным образом). –

+0

Не будет ли PrName в столбце pr_name? Я думаю, нам нужно увидеть старую модель. –

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