2014-11-04 47 views
0

我有一個ModelAdmin(A),它是另一個ModelAdmin(B)的內聯。 我想給用戶(U)的管理員權限(添加,更改和刪除)只爲A. 我給用戶他需要的所有權利(我認爲):is_staff:True |可以添加,更改,刪除A. 問題是U無法在管理面板上看到內聯A.如果我給他也B的權限,但是我不想讓他修改這個模型。 在這些情況下,模型B有一種「只讀」的方式嗎?Django僅允許內聯的管理權限

回答

0

如果要允許某些用戶編輯模型A但不允許模型B添加A作爲ModelAdmin並且只允許這些用戶管理(添加,編輯,刪除)模型A,則管理界面用於編輯。

class AAdmin(admin.ModelAdmin): 
    ... 

class AInline(GenericTabularInline): 
    model = A 
    ... 

class BAdmin(admin.ModelAdmin): 
    inlines = [ 
     AInline, 
    ] 
    ...  

admin.site.register(A, AAdmin) 
admin.site.register(B, BAdmin) 



a_user.user_permissions.add('my_app.add_a', 'my_app.change_a', 'my_app.delete_a') 
b_user.user_permissions.add('my_app.add_b', 'my_app.change_b', 'my_app.delete_b') 
+0

感謝您的回答,我明白了!只是爲了將來的用戶,我認爲你寫內聯有一個錯誤= [BInline,] ...認爲你想寫內聯= [AInline,] – Alessio 2014-11-04 09:56:56