2015-08-31 5 views
1

Пожалуйста, помогите мне с отношением ManyToOne. Я пробовал много разных вариантов, но для меня это не сработало. Исключение:Django ManyToOne отношения

IntegrityError в/админ/галерея/галерея/добавить/дубликат ключа нарушает ограничение уникальности "gallery_gallery_galleryCategories_id_key" ДЕТАЛЬ: Ключ ("galleryCategories_id") = (1) уже существует.

И моя модель код:

from django.db import models 
from datetime import datetime 
from imagekit.models import ImageSpecField 
from imagekit.processors import ResizeToFill 


class Gallery(models.Model): 
    title = models.CharField(max_length=255, verbose_name='Title', null=True) 
    galleryCategories = models.ForeignKey('GalleryCategories', verbose_name='Category', unique=False) #this line 

    def __unicode__(self): 
     return self.title 


class GalleryCategories(models.Model): 
    title = models.CharField(max_length=255, verbose_name='Title', null=True) 

    def __unicode__(self): 
     return self.title 

Помоги мне, пожалуйста.

ответ

3

Попробуйте запустить ./manage.py makemigrations и ./manage.py migrate. Я думаю, вы использовали unique=True и после того, как вы изменили его на False без переноса базы данных.

+0

Я удалил миграцию из каталога dir и запустил './manage.py makemigrations' и' ./manage.py migrate'. Но проблема все еще воспроизводится (в моем исходном коде u можно увидеть 'unique = False' – ashalbulk

+0

Вы не должны удалять свой миграционный каталог, потому что инфраструктура migraitons найдет, что таблица существует и не будет применяться к изменениям. – Mounir

+1

Самый простой способ для вас теперь заново создайте свою базу данных и не удаляйте свои папки для переноса в будущем. – Mounir