📜  django include all columns admin show - Python (1)

📅  最后修改于: 2023-12-03 15:00:26.490000             🧑  作者: Mango

Django Admin: 包含所有列并显示

在Django Admin后台中,有时候需要显示数据库模型的所有列,而不仅仅是默认的一些列。此时,我们可以使用Django提供的一种简单的方式来包含所有列并显示它们。

步骤一: 创建自定义Admin类

我们需要创建一个Admin类来重写默认的Admin类,并添加所有列。在这个Admin类中,我们需要使用两个变量来定义该模型的所有列,即list_displayreadonly_fields

from django.contrib import admin

from .models import MyModel


class MyModelAdmin(admin.ModelAdmin):
    list_display = [field.name for field in MyModel._meta.fields]
    readonly_fields = [field.name for field in MyModel._meta.fields]

在这个代码片段中,list_display包含了所有列的名称,而readonly_fields指定了这些列应该是只读的。

步骤二: 注册自定义Admin类

为了在Django Admin后台中使用自定义Admin类,我们需要将其注册到相应的模型。

admin.site.register(MyModel, MyModelAdmin)

现在,可以在Django Admin中查看包含所有列并显示的MyModel。

完整代码
from django.contrib import admin

from .models import MyModel


class MyModelAdmin(admin.ModelAdmin):
    list_display = [field.name for field in MyModel._meta.fields]
    readonly_fields = [field.name for field in MyModel._meta.fields]

admin.site.register(MyModel, MyModelAdmin)
Markdown代码片段
## Django Admin: 包含所有列并显示

在Django Admin后台中,有时候需要显示数据库模型的所有列,而不仅仅是默认的一些列。此时,我们可以使用Django提供的一种简单的方式来包含所有列并显示它们。

### 步骤一: 创建自定义Admin类

我们需要创建一个Admin类来重写默认的Admin类,并添加所有列。在这个Admin类中,我们需要使用两个变量来定义该模型的所有列,即`list_display`和`readonly_fields`。

```python
from django.contrib import admin

from .models import MyModel


class MyModelAdmin(admin.ModelAdmin):
    list_display = [field.name for field in MyModel._meta.fields]
    readonly_fields = [field.name for field in MyModel._meta.fields]

在这个代码片段中,list_display包含了所有列的名称,而readonly_fields指定了这些列应该是只读的。

步骤二: 注册自定义Admin类

为了在Django Admin后台中使用自定义Admin类,我们需要将其注册到相应的模型。

admin.site.register(MyModel, MyModelAdmin)

现在,可以在Django Admin中查看包含所有列并显示的MyModel。

完整代码
from django.contrib import admin

from .models import MyModel


class MyModelAdmin(admin.ModelAdmin):
    list_display = [field.name for field in MyModel._meta.fields]
    readonly_fields = [field.name for field in MyModel._meta.fields]

admin.site.register(MyModel, MyModelAdmin)