将多条记录添加到django admin中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将多条记录添加到django admin中相关的知识,希望对你有一定的参考价值。

我希望能够在django admin中一次添加多条记录。

models.朋友

class Photo(models.Model):
    pub_date = models.DateTimeField('date published')
    sort = models.IntegerField()
    photo_category = models.ForeignKey(Photocategory)
    title = models.CharField(max_length=200)
    title_url = models.SlugField(max_length=200)
    main_image = models.ImageField(blank=True, null=True, upload_to='images/photo/')
    # size is "width x height"
    cropping = ImageRatioField('main_image', '350x350')

    def image_thumbnail(self):
       return '<a href="/media/%s" target="_blank"><img width="160px" src="/media/%s"/></a>' % (self.main_image, self.main_image)

    image_thumbnail.allow_tags = True
    image_thumbnail.short_description = 'main_image'

    def __unicode__(self):
        return self.title

admin.朋友

class PhotoAdmin(ImageCroppingMixin, admin.ModelAdmin):

    prepopulated_fields = {'title_url': ('title',)}
    list_display = ('title', 'photo_category', 'image_thumbnail', 'sort')
    list_filter = ['photo_category']
    admin.site.register(Photo, PhotoAdmin)

截图:

有没有办法,我可以在1个屏幕上一次说5个,这是非常缓慢地填充1比1.我可以在SQL查询中使用mysql,但我想在这里实现这一点。

谢谢

答案

嘿是的,这是可能的,但开箱即用,,

以下是您需要做的事情:

  1. form PhotoAdmin的属性中定义Formset(以创建多个照片形式)
  2. 您将在添加照片管理页面上看到一个表单集,并且应该可以正常工作。如果不这样做,则可以通过在Admin中提供add_form_templatechange_form_template属性来覆盖模板,并显示表单集模板。
  3. 处理在Formset中保存多个对象

例如:

### admin.py ###
class PhotoAdmin(ImageCroppingMixin, admin.ModelAdmin):

    prepopulated_fields = {'title_url': ('title',)}
    list_display = ('title', 'photo_category', 'image_thumbnail', 'sort')
    list_filter = ['photo_category']

    form = MyFormset
    add_form_template = "photo/admin/my_add_form.html"
    change_form_template = "photo/admin/my_change_form.html"

admin.site.register(Photo, PhotoAdmin)

这是一个粗略的工作流程,您必须尝试这个并在需要时进行修改。您可以参考此文档:https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#modeladmin-options

以上是关于将多条记录添加到django admin中的主要内容,如果未能解决你的问题,请参考以下文章

layui当点击增加的时候,将form中的值获取的添加到table行中代码

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

在 django 管理面板中一次添加多条记录

Django-admin:如何在记录更改列表中显示指向对象信息页面的链接而不是编辑表单?

Cakephp:使用一个comman字段将多条记录添加到单个模型

将用户友好的 json 编辑器添加到 django admin