Я пытаюсь создать отдельного пользователя для администратора django, который имеет ограниченные разрешения вместо обычного администратора. Я знаю, что лучший подход будет заключаться в использовании прокси-администратора, но я столкнулся с некоторыми проблемами.Django proxy admin
У меня есть структура моделей, которые вряд ли будут изменены. Каждая модель наследуется от некоторого абстрактного базового модельного класса. И я не могу добавить статью proxy=True
. Структура моделей выглядит более или менее похоже, что:
class AbstractObject(models.Model):
@property
def some_property_that_applies_to_each_child_model(self):
pass
class Meta():
abstract = True
class ModelOne(AbstractObject):
id_field = models.IntegerField(primary_key=True)
@property
def some_custom_property(self):
pass
class ModelTwo(AbstractObject):
id_field = models.IntegerField(primary_key=True)
@property
def some_other_custom_property(self):
pass
теперь я хочу, чтобы создать ограниченную учетную запись администратора, который может сделать только некоторые действия, которые не имеют дело с БД. Я знаю, что мне нужно добавить proxy=True
в определении class Meta
для каждой модели, но он не работает ... Я получаю ошибку raise typeerror(proxy model %s has no non-abstract model base class. % name)
, что совершенно очевидно. Должен ли я создать какой-то не абстрактный шаблон базового макета класса и добавить его в таблицы db?
Я надеюсь, что вы получите представление о том, что я столкнулся с
да, я знаю это. Но в моем случае проблема в том, что каждая модель, у которой есть собственное представление в базе данных, первоначально наследуется от 'AbstractModel', которая фактически является абстрактной, поэтому он не имеет представления базы данных. Это всего лишь шаблон для определенного поведения каждой модели. Надеюсь, что это немного прояснилось ... – advena