python - urls - django設定




Django Admin-禁用特定模型的“添加”操作 (2)

很簡單,只需在Admin類中重載has_add_permission方法就可以了:

class MyAdmin(admin.ModelAdmin):
     def has_add_permission(self, request):
        return False

我有一個有很多模型和表單的Django站點。 我有許多自定義表單和表單集和內聯表單集以及自定義驗證和自定義查詢集。 因此,添加模型動作取決於需要其他事物的表單,並且django admin中的'添加模型'通過自定義查詢集中的500來添加。

無論如何,禁用某些模型的“添加$ MODEL”功能?

我想讓/admin/appname/modelname/add/給404(或適當的'走開'錯誤信息),我不希望'Add $ MODELNAME'按鈕在/admin/appname/modelname視圖上。

Django管理員提供了一種禁用管理操作的方法(http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions),但此模型的唯一操作是'delete_selected'。 即管理員操作僅對現有模型起作用。 有沒有一些Django風格的方式來做到這一點?


這是一個太延遲的答案; 只要發布這個,就好像有人找到相同的解決方案。

在admin.py文件中,您可以執行以下操作:

class MyModelForm(forms.ModelForm):

class Meta:
    model = MyModel
    fields = '__all__'


class MyModelAdmin(admin.ModelAdmin):
    form = QuestionTrackAdminForm
    list_display = ['title', 'weight']
    readonly_fields = ['title', 'weight']

admin.site.register(MyModel, MyModelAdmin)

在這裡,“readonly_fields”會發揮魔力。 謝謝。





django-admin