python - 选择外键对象后保存 Django 模型表单并刷新
问题描述
我有以下型号:
class Pic(models.Model):
name = models.CharField(max_length=50)
img = ImageField(upload_to='images/', default=None, null=True, blank=True)
class InputTest(models.Model):
pic_id = models.ForeignKey(Pic, on_delete=models.CASCADE)
image_field_crop = CropperImageField(upload_to='images/', default=None, null=True, blank=True)
添加新的 InputTest 对象时,管理员从现有对象中选择一个 PicID 对象(外键)。我想在选择它之后立即保存和刷新对象。
例如:
添加新的InputTest对象时,我选择PIC#1作为外键。程序将运行这个被覆盖的方法:
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(InputTest, self).save(force_insert, force_update, using, update_fields) self.image_field_crop = self.pic_id.img super(InputTest, self).save(force_insert, force_update, using, update_fields)
然后当页面刷新时,image_field_crop 会使用PIC#1.img自动完成,我可以在 CropperJS 中使用它(使用 CropperImageField)
是否有可能做到这一点?添加新 InputTest 时选择 pic_id 后立即自动保存对象并刷新页面。
解决方案
嗨,您可以在 InputTest 管理员中选择 pic_id 并选择保存按钮 image_field_crop 自动填充后,在 InputTest 模型中使用以下保存方法
def save(self, *args, **kwargs):
self.image_field_crop = self.pic_id.img
super(InputTest, self).save(*args, **kwargs)
希望对你有帮助
推荐阅读
- apache - Apache 中的服务器名称指令
- php - 回显数据库字段时如何更改日期格式?
- sql - 使用 PostgreSQL 创建触发器
- python - requirements.txt 中的 Dask 数据框?
- r - 选择R中向量中的所有值组合
- python - 用于散列算法的 Python 索引为 None
- csv - 如何在不导入空值的情况下从 csv 在 Quick Base 中进行更新导入?
- css - css 固定标题无法正确显示下拉菜单的问题
- symfony - 问题兼容性 symfony/symfony 3.3.* 和 symfony/dotenv 3.4
- javascript - 如何在没有任何条件的情况下返回切换参数javascript