【发布时间】:2013-09-05 19:19:20
【问题描述】:
我有一个带有多个 ImageField 的 Django 模型。
在 ModelAdmin 类上我设置了save_as = True,这意味着管理页面有一个“另存为新”按钮,它允许复制现有项目并将其另存为新项目。
但是,当使用此按钮时,ImageFields 不会重复,并且在新项目上留空。
查看 POST 请求,我看到这些字段在 post 数据中是空白的。
我考虑过重写模型类的保存方法,并自己从旧对象中复制图像。但据我所知,我无法判断该对象是“作为新的”保存的。我似乎也没有旧项目的 ID,所以我无法从中获取旧图像。
有没有办法让这些图像字段也被复制?
编辑: 按要求添加示例代码。
创建了一个只有一个模型的简约应用。经验证的问题仍然存在。
示例模型.py:
from django.db import models
class Person(models.Model):
face_image = models.ImageField(upload_to='images',
null=False,
blank=True)
示例 admin.py:
from django.contrib import admin
from testapp.models import Person
class PersonAdmin(admin.ModelAdmin):
save_as = True
admin.site.register(Person, PersonAdmin)
【问题讨论】:
-
你能分享一些你的代码吗?
-
好吧。我没有发布任何代码,因为它很简单。这只是一个Model 和ImageFields。不要以为我写了一些自定义代码破坏了“另存为新”功能(因为我看到数据甚至没有被发布)。它应该开箱即用吗?
-
这不是那么微不足道,因为您描述的行为似乎没有在文档中提及,所以它要么是 django 中的问题,要么是您的代码中的问题,我真的无能为力至少看到它的一部分
-
添加了最基本的代码示例。仍然发生。我意识到 Django 缺少此功能(至少在我使用的 1.4 中)。我想知道是否有某种解决方法或破解方法可以让它工作。
标签: django