0
我有一個條件,我希望阻止編輯我的應用程序中某些Django模型中輸入的任何記錄。同時我希望允許相同的添加權限,並且允許查看模型的現有記錄。我知道ModelAdmin中的readonly_fields選項。但我正在尋找一個通用選項,以便它可以繼承一些模型。如何防止在Django模型中編輯任何輸入的記錄
class ReadOnlyAdmin(admin.ModelAdmin):
readonly_fields = []
def get_readonly_fields(self, request, obj=None):
return list(self.readonly_fields) + \
[field.name for field in obj._meta.fields]
def has_add_permission(self, request, obj=None):
return True #False originally
def has_delete_permission(self, request, obj=None):
return False
class CompanyAdmin(ReadOnlyAdmin):
list_display = ('name','website')
的錯誤,如果返回true爲has_add_permission:
AttributeError at /admin/tracker/company/add/ 'NoneType' object has no attribute '_meta' Request Method: GET Request URL: http://myhost:8000/admin/tracker/company/add/ Django Version: 1.6.5 Exception Type: AttributeError Exception Value: 'NoneType' object has no attribute '_meta'
嘗試過這種方法,但它會在添加新記錄時產生問題。如果你知道如何通過這個邏輯來允許添加許可,我會很樂意實現它! – user956424 2014-10-06 11:31:30
您可以將該錯誤添加到原始問題中,因爲它可能是要解決的問題 – 2014-10-06 11:32:40
抱歉!編輯過你的答案。現在我已經更新了我原來的帖子! – user956424 2014-10-06 11:59:54