Это немного странно, но упоминать здесь все равно для справки.
У моего сайта есть общая модель под названием Setting
, в которой хранятся различные настройки, касающиеся сайта, который я хочу, чтобы определенные пользователи могли редактировать,без необходимости проходить через меня, разработчик (например, ограничение регистрации, или адрес, или стоимость предметов и т. д.).
Все разрешения, которые не очень хорошо отображаются на другие модели (например, «Отправить напоминание пароля»).Электронная почта для студента »,« Создать отчет о сверке платежей »,« Создать квитанцию в формате PDF »), которые действительно относятся только к страницам, которые просматриваются в административной области, и помещаются в эту модель Setting
.
Например,вот модель:
class Setting(models.Model):
name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(editable=False)
description = models.TextField()
value = models.TextField()
class Meta:
#for permissions that don't really relate to a particular model, and I don't want to programmatically create them.
permissions = (
("password_reminder", "Send Password Reminder"),
("generate_payment_reconciliation_report", "Generate Payment Reconciliation Report"),
("generate_pdf_receipt", "Generate PDF Receipt"),
)
Все эти настройки строго относятся к модели Setting
?Нет, именно поэтому я сказал, что это немного глупо.Но хорошо, что теперь я могу просто сбросить все эти разрешения здесь, а команды миграции Django позаботятся обо всем остальном.