Как мне построить эту модель Django, чтобы делать то, что я хочу - PullRequest
0 голосов
/ 17 декабря 2009

Это то, что я имел раньше (но понял, что вы не можете сделать это в таком порядке:

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)

Я думаю, вы можете увидеть, что я хочу сделать из примера. Я хочу иметь MasterAccountAdmin, который разделяет атрибуты из AccountAdmin. Цель состоит в том, чтобы я хотел дать людям возможность удалить AccountAdmin, но не MasterAccountAdmin. Я не хотел, чтобы в AccountAdmin был атрибут «master = models.BooleanField ()».

Очевидно, этот пример не сработает, потому что MasterAdmin ссылается на AccountAdmin перед его созданием, но я хотел показать, чего я пытаюсь достичь. Я думаю, что все это неправильно?

Ответы [ 2 ]

3 голосов
/ 17 декабря 2009

Почему бы просто не сделать is_master свойством AccountAdmin, а затем переопределить метод delete (), чтобы убедиться, что is_master неверно?

2 голосов
/ 17 декабря 2009

Если у вас есть прямые ссылки, используйте кавычки.

admin = models.OneToOneField('AccountAdmin')

См. Документы .

Если вам нужно создать связь на модели, которая еще не была определена, вы можете использовать имя модели, а не сам объект модели ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...