Hi All,

RajeshD gave me a great pointer to the unique_together directive.  So
I tried it in my model:

class Scripture( models.Model ):
    book = models.CharField (maxlength = 2, choices = constants.BIBLE_BOOKS)
    chapter = models.IntegerField ()
    from_verse = models.IntegerField ()
    to_verse = models.IntegerField (blank = True, null = True)
    passage = models.SlugField (prepopulate_from = ('chapter',
'from_verse', 'to_verse'), blank = True)

    def __str__( self ):
        if self.to_verse == None:
            return "%s %s:%s" % (self.get_book_display(),
self.chapter, self.from_verse)
        else:
            return "%s %s:%s-%s" % (self.get_book_display(),
self.chapter, self.from_verse, self.to_verse)


    def save( self ):
        if self.to_verse <= self.from_verse:
            self.to_verse = None

        super (Scripture, self).save()


    class Meta:
        unique_together = (('book', 'chapter', 'from_verse', 'to_verse',),)


So, ideally, something like "Genesis 1:1-2" should be allowed exactly
once in the table.  However, that doesn't seem to be the case.  The
directive works with two (like book and chapter or from and to), but
not with more.  Am I using it in a wrong way?

PS I tried with both sqlite and postgresql

Thanks!

Seemant

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to