Skip to content

Instantly share code, notes, and snippets.

@bengolder
Created March 3, 2017 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bengolder/388505ab2134d65bbf7ad93052058c21 to your computer and use it in GitHub Desktop.
Save bengolder/388505ab2134d65bbf7ad93052058c21 to your computer and use it in GitHub Desktop.
from django.db import models
class TransferPartnershipManager(models.Manager):
def get_by_natural_key(self, from_name, to_name):
return self.get(
from_organization__name=from_name,
to_organization__name=to_name)
class Organization(models.Model):
...
transfer_partners = models.ManyToManyField(
'self', through='user_accounts.TransferPartnership',
symmetrical=False, blank=True,
related_name='related_transfer_partners+')
class TransferPartnership(models.Model):
from_organization = models.ForeignKey(
'user_accounts.Organization', on_delete=models.PROTECT,
related_name='transfer_partnerships_out')
to_organization = models.ForeignKey(
'user_accounts.Organization', on_delete=models.PROTECT,
related_name='transfer_partnerships_in')
def __str__(self):
return "{} and {}".format(
self.from_organization.name, self.to_organization.name)
def natural_key(self):
return (self.from_organization.name, self.to_organization.name)
class Meta:
unique_together = ('from_organization', 'to_organization')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment