आप शायद इसे postgresql के indexes on expressions
. के साथ हल कर सकते हैं लेकिन यहाँ दूसरा तरीका है:
class Share( models.Model ):
sharer = models.ForeignKey(User)
receiver = models.ForeignKey(User), related_name='receiver')
key = models.CharField(max_length=64, unique=True)
def save(self, *args, **kwargs):
self.key = "{}.{}".format(*sorted([self.sharer_id, self.receiver_id]))
super(Share, self).save(*args, **kwargs)
लेकिन यह स्पष्ट रूप से काम नहीं करेगा यदि आप QuerySet.update
. के साथ मान बदलते हैं तरीका। आप django-denorm
भी देख सकते हैं , यह इसे ट्रिगर के साथ हल करता है।