Django ImageField在空时覆盖现有路径

时间:2014-04-08 10:50:50

标签: django

所以,这就是问题所在:  我目前有一个模特:

class UserData(models.Model):
    avatar = models.ImageField(verbose_name='Avatar',upload_to='images/profile_pics',blank=True,null=True)
    doc_type = models.CharField(verbose_name='Document type',max_length=1,default='0')


表格:

class UserCreationForm(forms.ModelForm):
    avatar = forms.ImageField(label='Avatar',required=False, error_messages = {'invalid':"Images only"}, widget=forms.FileInput)
    class Meta:
        model = UserData

因此,当用户尝试编辑其数据时会出现问题。如果未提供图像,则db中的当前图像路径将使用空字符串覆盖。有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:0)

avatar = models.ImageField(verbose_name='Avatar',upload_to='images/profile_pics',null=True)

删除blank=True应该可以解决

答案 1 :(得分:0)

您可以通过设置图像字段为必填项。

avatar = forms.ImageField(label='Avatar', required=True, error_messages={'invalid':"Images only"}, widget=forms.FileInput)

答案 2 :(得分:0)

同时删除等于blank and null的两个True

blank=True

允许该字段为空

null=True

允许将空数据保存在数据库中

因此您可以选择最适合您的一个。