Ho una situazione in cui voglio usare le opzioni di Meta di unique_together
di far rispettare una certa regola, ecco il modello di intermediazione:Django unico insieme (con chiavi esterne)
class UserProfileExtension(models.Model):
extension = models.ForeignKey(Extension, unique=False)
userprofile = models.ForeignKey(UserProfile, unique=False)
user = models.ForeignKey(User, unique=False)
class Meta:
unique_together = (("userprofile", "extension"),
("user", "extension"),
# How can I enforce UserProfile's Client
# and Extension to be unique? This obviously
# doesn't work, but is this idea possible without
# creating another FK in my intermediary model
("userprofile__client", "extension"))
ed ecco ProfiloUtente:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
client = models.ForeignKey(Client)
Grazie.
Basta stare attenti. Questo può fallire se stai usando le transazioni (che probabilmente sei). – mlissner