#python_3x #django
Сейчас я в своем проекте вручную добавляю/удаляю право на просмотр записей у пользователей.
Есть способ сделать так, чтобы при добавлении права пользователю указать время действия?
То есть, выдать право на время, по истечению которого django сам это право изымет у
пользователя.
models.py:
class PremiumTime(models.Model):
user_id = models.ForeignKey(User, on_delete=SET_NULL, null=True, blank=True, verbose_name='Пользователь')
permission_id = models.ForeignKey(Permission, on_delete=SET_NULL, null=True, blank=True,
verbose_name='Право')
start_datetime = models.DateTimeField(verbose_name='Premium куплен')
end_datetime = models.DateTimeField(verbose_name='Premium истекает')
admin.py:
class PremiumUsers(admin.ModelAdmin):
list_display = ('user_id', 'permission_id', 'start_datetime', 'end_datetime')
list_display_links = ('user_id',)
Вид в админке:
При создании записи в админке - право пользователю не выдается. Как сделать так,
чтобы оно присваивалось пользователю?
Ответы
Ответ 1
Можно создать M2M таблицу class PermissionTime(models.Model): user_id = models.ForeginKey(User, on_delete=SET_NULL, null=True, blank=True) permission_id = models.ForeginKey(Permission, on_delete=SET_NULL, null=True, blank=True) start_datetime = models.DateTime() end_datetime = models.DateTime()
Комментариев нет:
Отправить комментарий