簡體   English   中英

一旦設置為 null,如何在 Django model 中使用默認值?

[英]How to use default value in Django model once set to null?

我的 django 應用程序中有這個 model:

class Person(models.Model):
    name = models.CharField(max_length=50)
    image = models.ImageField(blank=True, upload_to='images', default='default/static/image/here')

    def __str__(self):
        return self.name

在制作 Person object 時,如果留空,“圖像”將設置為默認值,但稍后,如果用戶決定刪除他的圖像,他的圖像將不再設置為默認值,而是設置為 NULL。 我怎樣才能使圖像再次為 NULL 時,它會自動恢復默認值?

更改圖像時,ImageField 不會是 Null。 您可以設置默認圖像。 如果用戶想刪除他的圖像,默認圖像會再次出現。

您可以修改檢查 ImageField 是否為 Null 的保存方法

class Person(models.Model):
    name = models.CharField(max_length=50)
    image = models.ImageField(blank=True, upload_to='images', default='default/static/image/here')

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.image:  #here
            self.image = 'default/static/image/here'
        super(Person, self).save(*args, **kwargs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM