Мой models.py выглядит следующим образом:Ограничение только определенным пользователям, чтобы изменить строку в списке на экране в админке Django
class Change(models.Model):
RFC = models.CharField(max_length=10)
Ticket_Number = models.CharField(max_length=10)
Plan_Owner = models.ForeignKey(User)
Plan_validater = models.ForeignKey(User)
Мой admin.py выглядит следующим образом:
class ChangeAdmin(admin.ModelAdmin):
search_fields = ('RFC', 'Ticket_Number','Plan_Owner','Plan_validater')
list_display = ('RFC', 'Ticket_Number','Plan_Owner','Plan_validater')
fieldsets = [
('Ticket Details', {
'fields': ['RFC', 'Ticket_Number', 'Plan_Owner','Plan_validater']}),
]
admin.site.register(Change, ChangeAdmin)
Что Я хочу убедиться, что только владелец плана или плательщик плана для конкретного изменения могут его редактировать. Каждый может просмотреть его, но выполнение изменений в строке должно быть ограничено только владельцем изменения или планировщиком. Также они могут редактировать его и не удалять его. Только суперпользователь может добавлять или удалять изменения. This link на сайте Джанго упоминает некоторые подсказки, но мое отсутствие опыта с рамками мне мешает его реализации ...
[Это] (http://www.b-list.org/weblog/2008/dec/24/admin/) может помочь вам –
Это звучит, как вы собираетесь об этом неправильном пути. Почему вы предоставляете пользователям доступ к административной стороне сайта? Если вы не создаете какую-либо CMS-систему, вы можете создать свои собственные пользовательские разрешения для сторонних сайтов для конечных пользователей. Не позволяйте пользователям использовать административную сторону, позволяйте им делать все с самого сайта. – Joe
Вы пытались использовать чистую функцию, чтобы проверить, есть ли у пользователя соответствующие права. – Armance