Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 防止在文件存在时更改文件名_Django - Fatal编程技术网

Django 防止在文件存在时更改文件名

Django 防止在文件存在时更改文件名,django,Django,我想显示默认的头像,但当我试图将其保存在数据库文件中时,它会用新名称复制。 如果文件已经存在,如何防止更改文件名 我的代码: models.py class UserAccount(User): contacts = models.OneToOneField('self', null = True) isBanned = models.BooleanField(_('ban status'), default = False, help_text = _("Dis

我想显示默认的头像,但当我试图将其保存在数据库文件中时,它会用新名称复制。 如果文件已经存在,如何防止更改文件名

我的代码: models.py

class UserAccount(User):
    contacts = models.OneToOneField('self', null = True)
    isBanned = models.BooleanField(_('ban status'), default = False,
        help_text = _("Display is contact banned by user."))
    avatar = FileField(upload_to = 'avatars')
   objects = UserManager()
views.py

user = UserAccount.objects.get(username = user_login)
user.first_name = request.POST['first_name']
user.last_name = request.POST['last_name']
user.email = request.POST['email']
try:
    file = request.FILES['avatar']
    fileName = request.FILES['avatar'].name
except:
    fileName = 'static/avatars/default.gif'
    file = File(open(fileName, 'r'))
user.avatar.save(fileName, file)
user.save()

解决方案在于,我没有保存化身,只是将文件字段路径分配给默认化身

try:
    file = request.FILES['avatar']
    fileName = request.FILES['avatar'].name
except:
    user.avatar = 'avatars/default.gif'
    flag = False
if flag:
    user.avatar.save(fileName, file)
user.save()

已解决:user.avatar='avatars/default.gif'如果您已解决问题,请发布解决方案并接受它。StackOverflow鼓励提问者解决自己的问题。