2017-08-11 1 views
1

Ich habe ein kleines Problem mit meinen Migrationen in Django-Projekt. Ich habe eine models.py Datei und nach dem ersten Migrationen hatte ich eine Idee neues Feld hinzuzufügen exacly:UNIQUE Einschränkung fehlgeschlagen Fehler in Django

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

Und wenn ich python manage.py makemigrations schrieb das System zeigt mir, so etwas wie: Add field slug_kat to kategorie Danach schrieb ich den Befehl python manage.py migrate firmy und Boom ... der Fehler:

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

Hier ist mein models.py Datei mit neuer Linie 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 

Antwort

1

das Problem ist, dass Sie einen Standardwert sowie einzigartigen bieten = True

somit django den für alle Standardwert als Wert annimmt und kann nicht nehmen einzigartig

entweder so verwenden diesen

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

oder

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

Ok ich es getan habe und es funktioniert. Vielen Dank ! – killerbees

Verwandte Themen