2017-08-11 122 views
1

我在django項目中進行遷移時遇到了一些問題。 我有一個models.py文件,並第一次遷移後,我有一個想法,添加exacly新的領域:django中的唯一約束失敗錯誤

slug_kat = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik', default='') 

當我寫python manage.py makemigrations系統顯示我是這樣的: Add field slug_kat to kategorie 之後,我寫的命令python manage.py migrate firmy和咚......錯誤:

django.db.utils.IntegrityError: UNIQUE constraint failed: firmy_kategorie.slug_kat 

這裏是我的models.py文件與新的生產線slug_kat:

from django.db import models 
from django.utils import timezone 


class Kategorie(models.Model): 
    glowna = models.CharField(max_length=150, verbose_name='Kategoria') 
    slug_kat = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik', default='') 

    class Meta: 
     verbose_name='Kategoria' 
     verbose_name_plural='Kategorie' 

    def __str__(self): 
     return self.glowna 


class Witryna(models.Model): 
    nazwa = models.CharField(default="", max_length=150, verbose_name = 'Nazwa strony') 
    adres_www = models.CharField(max_length=70, verbose_name='Adres www') 
    slug = models.SlugField(max_length=250, verbose_name='Przyjazny adres url') 
    email = models.CharField(max_length=100, verbose_name='Adres e-mail') 
    text = models.TextField(max_length=3000, verbose_name='Opis strony') 
    kategoria = models.ForeignKey(Kategorie, verbose_name='Kategoria') 
    data_publikacji = models.DateTimeField(blank=True, null=True, verbose_name='Data publikacji') 

    class Meta: 
     verbose_name='Strona www' 
     verbose_name_plural = 'Strony www' 

    def publikacja(self): 
     self.data_publikacji=timezone.now() 
     self.save() 

    def __str__(self): 
     return self.nazwa 

回答

1

問題是你所提供的默認值,以及獨特=真

這樣的Django採用默認值作爲所有的值,不能採取唯一

所以無論使用

slug_kat = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik') 

slug_kat = models.SlugField(max_length=255, verbose_name='Odnośnik', default='') 
+0

好吧,我做到了,它的工作。非常感謝你 ! – killerbees

相關問題