Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Как в django выдать пользователю права на время?

#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()

Комментариев нет:

Отправить комментарий