In this:
class Administrator(models.Model):
user = models.OneToOneField(User, primary_key=True)
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'self.user.username'),)
The self.user.username
part is obviously incorrrect. However, in this:
class Administrator(User):
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'username'),)
would that work since I'm inheriting from User? (I can't test it yet because there are too many elements out of place elsewhere). Can I use the first version with 'user.username'
instead though? Or, should I use the second version?
I don't believe you can do what you're trying to do using django core. As pointed out in this answer to a related question unique_together is enforced at the DB layer. If you inspect the DB tables created by django model inheritance, you'll see this isn't possible for the DB to accomplish.
Take a look at that related question for some alternative solutions.
It would be
unique_together = (('account', 'user__username'),)
if I understand what you're trying to do. Note the double underscore. That's how you look at a foreign key's object's properties.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With