Reputation: 209
I have a little problem with my migrations in django project. I have a models.py file and after first migrations I had a idea to add new field exacly :
slug_kat = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik', default='')
And when I wrote python manage.py makemigrations
the system shows me something like:
Add field slug_kat to kategorie
After that i wrote the command python manage.py migrate firmy
and boom... the error:
django.db.utils.IntegrityError: UNIQUE constraint failed: firmy_kategorie.slug_kat
Here is my models.py file with new line 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
Upvotes: 0
Views: 1691
Reputation: 27503
the problem is you are providing a default value as well as unique=True
thus django takes the default value as a value for all and cannot take unique
so either use this
slug_kat = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik')
or
slug_kat = models.SlugField(max_length=255, verbose_name='Odnośnik', default='')
Upvotes: 2