更改 Django 管理面板中布尔字段的值

时间:2021-07-29 16:07:02

标签: python django-admin

我的models.py和admin.py的代码如下: 模型.py:

from django.db import models
class Product(models.Model):
    name = models.CharField(max_length=50)
    price = models.IntegerField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)
    is_active = models.BooleanField(default=True)

    def __str__(self):
        return '{}, {}'.format(self.name, self.company)

admin.py:

from django.contrib import admin

from .models import Product


@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
    list_display = ['id', 'name', 'category', 'is_active']
   # list_filter=['is_active']
    list_display_links = ['id', 'name']
    fieldsets = (
        ('Identification', {
            'fields': ('name', 'price','is_active')
        }),
        ('Details', {
            'classes': ('collapse',),
            'fields': ('category', 'company')
        }),
    )
    actions=['make_inactive']
    def make_inactive(self, request, queryset):
        queryset.update(is_active=False)
    make_inactive.allow
        

此代码在管理模型中的输出如下

pric1

我应该如何更改我的代码以获得如下图所示的输出(不同之处在于 is_active 列的复选框): pic2

1 个答案:

答案 0 :(得分:0)

我们可以通过添加此代码使 is_active 列可编辑(复选框选项)

list_editable=['is_active']

到 ProductAdmin 类

相关问题