Здесь у меня есть функция, которая запрещает и отменяет запрет на пользователей. В настоящее время я могу использовать это в DjangoAdmin в моей пользовательской модели пользователя.
Но я пытаюсь запретить пользователям использовать модель Profile в моем DjangoAdmin.
И все же я продолжаю получать ОШИБКА FieldDoesNotExist в / admin / api / profile /
В профиле нет поля с именем 'is_active' , поскольку is_active
является функцией модели пользователя. Я не уверен, как можно запретить пользователям доступ к представлению модели профиля в Admin или как подключить is_active к Profile
Модель.
#Banning Function
def ban_users(self, request, queryset):
queryset.update(is_active = False)
self.message_user(request, "User is banned and Email has been sent")
def remove_ban(self, request, queryset):
queryset.update(is_active = True)
self.message_user(request, "Users ban has been lifted")
#Admin functions will be created here,as well as registration of their specific models
class ReportAdmin(admin.ModelAdmin):
list_display = ('user_reported', 'report_reason', 'sent_by', 'session')
admin.site.register(Report, ReportAdmin)
class ProfileAdmin(admin.ModelAdmin):
list_display = ('user', 'birth_date', 'sessions_played', 'total_reports')
readonly_fields = (('sessions_played'),('birth_date'),('user'),('pref_server'),('teamwork_commends'),('skill_commends'),('sportsmanship_commends'),('communication_commends'),('discord_name'))#,'total_reports')
actions = ['ban', 'unban']
ban = ban_users
unban = remove_ban
def total_reports(self, obj):
return Report.objects.filter(user_reported=obj).count()
admin.site.register(Profile, ProfileAdmin)
class MyUserAdmin(UserAdmin):
list_display = ('username', 'first_name', 'last_name' , 'email')
readonly_fields = ('first_name' , ('last_name') , ('email') , ('username'))
actions = ['ban', 'unban']
ban = ban_users
unban = remove_ban
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)