En este:Django unique_together en el modelo de subclase para el atributo primario?
class Administrator(models.Model):
user = models.OneToOneField(User, primary_key=True)
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'self.user.username'),)
La parte self.user.username
es, obviamente, incorrrect. Sin embargo, en esto:
class Administrator(User):
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'username'),)
¿funcionaría eso porque estoy heredando del usuario? (No puedo probarlo todavía porque hay demasiados elementos fuera de lugar en otro lugar). ¿Puedo usar la primera versión con 'user.username'
en su lugar? O, ¿debería usar la segunda versión?
Ok, gracias Tom. Eso funciona perfectamente. Tengo miedo de subclasificar al usuario (no sé qué efectos podrían venir en el camino de esto), así que lo usaré en su lugar. – orokusaki
¿Por qué le preocuparía subclasificar al usuario? ¿Que estás tratando de hacer? Si intenta agregar información adicional al modelo de usuario, consulte django-registration (http://bitbucket.org/ubernostrum/django-registration/). De lo contrario, creo que desea echar un vistazo al sistema de autenticación (http://docs.djangoproject.com/en/dev/topics/auth/), que ya tiene incorporados usuarios y administradores y otros conceptos de seguridad. – Tom
I ' m construyendo un SAAS para que los usuarios no sean el nivel más alto de instancia en mi software. Las cuentas lo harán Esto significa que un Usuario puede ser cualquier cosa desde un Administrador hasta un Cliente de titular de cuenta, etc. Cada uno puede tener sus propios permisos (es decir, un Administrador de Cuenta podrá editar la configuración de su cuenta (como su inicio de sesión de PayPal, o insertar CSS para usar) para sus formularios, etc., y un cliente de un titular de la cuenta podrá iniciar sesión y enviar mensajes al titular de la cuenta y el titular de la cuenta responderá a ellos (conversaciones privadas). ¿Suena bien, o sigo desaparecido? algo. – orokusaki