2015-03-23 2 views
0
from django.db import models 
from imagekit.models import ImageSpecField 
from imagekit.processors import ResizeToFill 

класс продукта (models.Model):SyncDB не работает

class Meta(): 
    db_table = 'tovar' 


product_title = models.CharField(max_length=200) 
product_img = models.ImageField(upload_to='images') 
avatar = models.ImageField(upload_to='avatars') 
avatar_thumbnail = ImageSpecField(source='avatar',processors=[ResizeToFill(100, 50)],format='JPEG',options={'quality': 60}) 
product_categories = models.ForeignKey(Category) 
product_subcategories = models.ForeignKey(Subcategory) 
product_description = models.TextField() 


def __unicode__(self): 
    return self.product_title 


profile = Product.objects.all()[0] 
print(profile.avatar_thumbnail.url)  
print(profile.avatar_thumbnail.width) 

Dont работать manage.py SyncDB

Ошибка:

django.db.utils.OperationalError: нет такого стол: tovar

pls healp me

+0

Вы попробовали manage.py migrate? – user2393256

+0

Я удалил свою базу данных. И не могу создать новый. Моя команда syncdb сообщает мне: «django.db.utils.OperationalError: нет такой таблицы: tovar». –

+0

Вся операция с базой данных говорит мне об ошибке: «django.db.utils.OperationalError: нет такой таблицы: tovar» –

ответ

0

Если вы изменили свою модель, вы должны сначала запустить

manage.py schemamigration your_django_application_name --auto

Тогда вы бежите:

manage.py migrate your_django_application_name

+0

Нет, команда для создания миграции - это 'makemigrations', и у нее нет флага' --auto'. –

+0

Вот почему я сказал в начале: «Если вы изменили вашу модель, вы должны сначала запустить» Если он инициализирует приложение, он может запустить 'manage.py schemamigration your_django_application_name --initial' И затем мигрируют в сказал на юге документация http://south.readthedocs.org/ru/latest/tutorial/part1.html – lapinkoira

+0

Но почему вы рекомендуете Юг? Миграции теперь встроены в Django, нет никаких указаний на то, что OP использует старую версию. –

0

использовать следующую команду

>>python manage.py sqlmigrate application_name 0001 

, если у вас есть больше таблицы затем увеличивайте число до ooo2 и снова запустите код abe

>>python manage.py runserver 
1

«python manage.py syncdb» не работает для Django 1.9 или новее, попробуйте этот код!

  • питон manage.py makemigrations

  • питон manage.py мигрировать

  • питона manage.py мигрировать --run-SyncDB

У меня такая же проблема с Django 1.9 и 1.10. Этот код работает!