Daydreamer . 2024-06-11 21:20 采纳率: 0%
浏览 5
已结题

Django admin 中增加数据页面的增加 basic info 这个怎么修改

Django admin 中增加数据页面的增加basic info 这个怎么修改?我想修改为增加商品信息

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-11 21:20
    关注

    引自免费微信小程序:皆我百晓生

    要修改Django Admin中特定模型的“增加”页面布局,特别是想要添加或修改字段分组如Basic Info,可以通过自定义Admin表单类和Admin类实现。下面是一个详细的步骤和示例代码。

    步骤 1: 创建Admin表单类

    在你的应用目录下的admin.py文件中,首先导入必要的模块,并创建一个继承自ModelForm的自定义表单类。在这个类中,可以使用Meta内部类来指定模型和字段。

    from django import forms
    from .models import YourModel
    
    class BasicInfoForm(forms.ModelForm):
        class Meta:
            model = YourModel
            fields = [
                'category', 'full_name', 'product_code', 
                'pinyin_code', 'specification', 'model', 
                'origin', 'upper_stock_limit', 'lower_stock_limit'
            ]
    

    步骤 2: 自定义Admin类

    接下来,创建一个继承自ModelAdmin的自定义Admin类。在这个类中,你可以使用form属性来引用上面创建的自定义表单类。此外,使用fieldsets属性来组织字段为不同的分组。

    from django.contrib import admin
    
    class BasicInfoAdmin(admin.ModelAdmin):
        form = BasicInfoForm
        fieldsets = (
            ('Basic Info', {
                'fields': (
                    'category',
                    'full_name',
                    'product_code',
                    'pinyin_code',
                    'specification',
                    'model',
                    'origin',
                    'upper_stock_limit',
                    'lower_stock_limit',
                ),
            }),
            ('Price Information', {
                'classes': ('collapse',),
                'fields': (
                    # 价格信息字段放在这里
                ),
            }),
        )
    

    步骤 3: 注册模型和Admin类

    最后,确保在admin.py文件中注册你的模型和自定义Admin类。

    admin.site.register(YourModel, BasicInfoAdmin)
    

    完整代码示例

    将以上所有代码段组合在一起,你的admin.py文件可能看起来像这样:

    from django import forms
    from django.contrib import admin
    from .models import YourModel
    
    # 自定义表单类
    class BasicInfoForm(forms.ModelForm):
        class Meta:
            model = YourModel
            fields = [
                'category', 'full_name', 'product_code', 
                'pinyin_code', 'specification', 'model', 
                'origin', 'upper_stock_limit', 'lower_stock_limit'
            ]
    
    # 自定义Admin类
    class BasicInfoAdmin(admin.ModelAdmin):
        form = BasicInfoForm
        fieldsets = (
            ('Basic Info', {
                'fields': (
                    'category',
                    'full_name',
                    'product_code',
                    'pinyin_code',
                    'specification',
                    'model',
                    'origin',
                    'upper_stock_limit',
                    'lower_stock_limit',
                ),
            }),
            ('Price Information', {
                'classes': ('collapse',),  # 可折叠的字段集
                'fields': (
                    # 价格信息字段放在这里
                ),
            }),
        )
    
    # 注册模型和Admin类
    admin.site.register(YourModel, BasicInfoAdmin)
    

    通过这些步骤,你可以根据需求定制Django Admin界面的布局和样式。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月20日
  • 修改了问题 6月11日
  • 创建了问题 6月11日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!