2017-08-11 14 views
1

私はdjangoプロジェクトでのマイグレーションに少し問題があります。 私はmodels.pyファイルを持っているし、最初の移行後、私はexacly新しいフィールドを追加するためのアイデアを持っていた:UNIQUE制約が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

問題は、デフォルト値を提供するだけでなく、ユニーク= Trueの

されているので、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

[OK]を私はそれをしなかったし、それが働いています。どうもありがとうございました ! – killerbees

関連する問題