【问题标题】:How can one replicate Django admins add new row functionality?一个复制 Django 管理员如何添加新的行功能?
【发布时间】:2026-02-10 21:30:01
【问题描述】:

我正在寻找一种方法来实现从 Django 管理员到模板中的普通表单的“添加新模型名称”功能,即;在 Django 管理员之外,我怎么能使用相同的功能。

我怎样才能实现它?

【问题讨论】:

    标签: django django-admin django-1.8 django-admin-actions


    【解决方案1】:

    第一步是在models.py中创建业务模块

    class Business(models.Model):
            name = models.CharField(max_length=200, db_index=True)
            slug = models.SlugField(max_length=200, db_index=True, unique=True)
    
            class Meta:
                ordering = ('name',)
                verbose_name = 'business'
                verbose_name_plural = 'business'
    
            def __str__(self):
                return self.name
    

    然后使用python manage.py migrate 将模块迁移到您的数据库中。

    现在打开 admin.py 文件并注册这个模块,

    from .models import Business
    
    # Register your models here.
    class BusinessAdmin(admin.ModelAdmin):
        list_display = ['name', 'slug']
        prepopulated_fields = {'slug': ('name',)}
    admin.site.register(Business,BusinessAdmin)
    

    现在检查您的 Django 管理面板。它将在那里向您显示带有添加、删除功能的新业务模块。

    希望对你有所帮助。

    【讨论】:

    • 我想我在描述中没有说清楚。很抱歉,但我正在寻找一种方法在 Django 管理员之外的普通模板中复制它,该模板用于填写表单,而不是在 Django 管理员内部。