簡體   English   中英

Django Admin:向不同的用戶顯示不同的模型

[英]Django Admin: Show different models to different users

我有兩個超級用戶( user1user2 )和兩個模型( ModelAModelB )。 在管理頁面中,我只想向user1顯示ModelA ,因此user1只能編輯ModelA實例而不能編輯ModelB實例。 同樣,我希望user2只能編輯ModelB實例。 有沒有辦法實現這一目標?

這就是has_change_permission的用途。 您可以向特定用戶授予編輯權限。

class TestAdmin(admin.ModelAdmin):

    def has_change_permission(self, request):
        if request.user.username == 'xyz':
            # Feel free to return false to hide this TestAdmin to xyz user
            return False
        return True

如果需要分別限制對ModelAModelB的訪問,則user1user2不能成為超級用戶。 所以,請先重構它。

是的,您可以在 Django 管理界面中授予特定用戶對特定模型的訪問權限。 請查看 Django 文檔: 權限和授權

還有一個關於設置權限和組的很好的教程: https : //developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

如果您在閱讀資源后有任何困惑,請告訴我。

謝謝!

在 has_module_permission 中,您可以執行以下操作:

def has_module_permission(self, request):
    if request.user.is_superuser:  # show for super user anyway
        return True
    if request.user ... complete the condition:
        return True

你應該有一些東西可以區分用戶,比如為不同的用戶(管理員、員工、編輯)提供更多的屬性等等。

if request.user.role = "staff":
    return True

類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM