Pregunta

Esto es lo que tenía antes (pero se dio cuenta de que no puede hacerlo, obviamente, en este orden:

class MasterAdmin(models.Model):
    """
    A permanent admin (one per Account) that shouldn't be deleted.
    """
    admin = models.OneToOneField(AccountAdmin)

class Account(models.Model):
    """
    A top-level account in the system.
    """
    masteradmin = models.OneToOneField(MasterAdmin)


class AccountAdmin(models.Model):
    """
    An Account admin that can be deleted.  This includes limited permissions.
    """
    account = models.ForeignKey(Account)

Creo que se puede ver lo que quiero hacer con el ejemplo. Quiero tener un MasterAccountAdmin que comparte los atributos de AccountAdmin. El propósito es que quiero dar a las personas la capacidad de eliminar un AccountAdmin, pero no MasterAccountAdmin. No quería tener sólo un atributo de AccountAdmin llamado "maestro = models.BooleanField ()".

Es evidente que este ejemplo no funcionará porque MasterAdmin hace referencia AccountAdmin antes de su creación, pero quería mostrar lo que estoy tratando de lograr. ¿Estoy pensando en esto todo mal?

¿Fue útil?

Solución

¿Por qué no hacer is_master una propiedad de AccountAdmin y luego reemplazar el método delete () para asegurar is_master no es cierto?

Otros consejos

Cuando se tiene referencias a plazo, utilizar las comillas.

admin = models.OneToOneField('AccountAdmin')

Consulte la documentación .

  

Si es necesario crear una relación en un modelo que todavía no se ha definido, puede utilizar el nombre del modelo, en lugar del modelo propio objeto ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top