繁体   English   中英

保存 Django Model 表单并在选择外键后刷新 Object

[英]Save Django Model Form and refresh after selecting a Foreign Key Object

我有以下型号:

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 object 时,管理员从现有的中选择 PicID Object(外键)。 我想在选择它之后,将 object 保存并刷新。

例如:

  • 添加新的InputTest object 时,我将 select 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)

是否有可能做到这一点? 自动保存 object 并在添加新 InputTest 时选择 pic_id 后立即刷新页面。

嗨,您可以在 InputTest model 中使用以下保存方法,在您 select 在 InputTest admin 中的 pic_id 和 select 保存按钮 image_field_crop 字段自动填充之后

def save(self, *args, **kwargs):
        self.image_field_crop = self.pic_id.img
        super(InputTest, self).save(*args, **kwargs)

希望对你有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM