I have a django model as below
class MySubject(models.Model):
name=models.CharField(unique=True,max_length=50)
description=models.TextField(blank=True)
slug=models.SlugField(editable=False)
class Meta:
verbose_name_plural="MySubjects"
def __unicode__(self):
return self.name
def save(self,*args,**kwargs):
self.name=self.name.strip()
self.slug=slugify(self.name)
super(MySubject,self).save(*args,**kwargs)
@models.permalink
def get_absolute_url(self):
return ('subject_detail',(),{'slug':self.slug})
I need to make the creator+ name unique ,sothat I can call
subject,status=MySubject.objects.get_or_create(name__iexact=name.strip(),creator= request.user,defaults={'name':name,'description':name,'creator':request.user})
Is the following ,the right way to do this?
class MySubject(models.Model):
name=models.CharField(max_length=50)
creator = models.ForeignKey(User,null=True)
description=models.TextField(blank=True)
slug=models.SlugField(editable=False)
class Meta:
verbose_name_plural="MySubjects"
unique_together = ('name', 'creator',)
...
I guess I have to do a migration
using south
after making the change..Do I have to do schemamigration
alone or do I have to do a datamigration
?