Изображение по умолчанию для поля изображения не хранит изображение по умолчанию - PullRequest
0 голосов
/ 18 января 2020

В моей форме регистрации есть ImageField, где он будет запрашивать фотографию профиля, где я указал, что она не требуется. В поле изображения из модели я назначил путь по умолчанию для профиля изображения, когда пользователь не выбирает изображение профиля, но когда учетная запись сохраняется в базе данных, она не сохраняет изображение по умолчанию в указанной мной ситуации.

forms.py

class RegisterForm(forms.Form):
    GENDER = (
        ("M","Hombre"),
        ("F","Mujer"),
    )
    ad_profile=forms.ImageField(label="profile image",widget=forms.FileInput(attrs={'class':'form-control-file',}),validators=[validators.validate_image_file_extension,],required=False)
    ad_name=forms.CharField(label="name",max_length=60,min_length=15,widget=forms.TextInput(attrs={'class':'form-control',}),required=True)
    ad_email=forms.EmailField(label="email",widget=forms.EmailInput(attrs={'class':'form-control','placeholder': 'ejemplo@correo.com'}),required=True,validators=[validators.validate_email,])
    ad_password=forms.CharField(label="password",widget=forms.PasswordInput(attrs={'class':'form-control','placeholder':'Contraseña'}),required=True,min_length=6)
    ad_password_s=forms.CharField(label="password",widget=forms.PasswordInput(attrs={'class':'form-control','placeholder':'Confirmar Contraseña'}),required=True,min_length=6)
    ad_username=forms.CharField(min_length=6,max_length=30,widget=forms.TextInput(attrs={'class':'form-control','placeholder':'user1234'}),required=True)
    ad_genre=forms.ChoiceField(choices=GENDER,widget=forms.Select(attrs={'class':'form-control w-auto'}),required=True)

models.py

class QL_FREE_DT(models.Model):
    GENDER = (
        ("M","Hombre"),
        ("F","Mujer"),
    )
    ql_free_img_link=models.ImageField(upload_to="freelance-profile-picture",default='qtz_default/img/img_avatar.png')
    ql_free_name=models.CharField(max_length=60)
    ql_free_email=models.EmailField(max_length=254,unique=True)
    ql_free_pass=models.CharField(max_length=254)#hash256 max_length=64 bcrypt hash256 lenght=50
    ql_free_username=models.CharField(max_length=30,unique=True)
    ql_free_gender = models.CharField(max_length=1, choices=GENDER, default="M")

    ql_free_desc=models.TextField(max_length=500,blank=True)
    ql_free_created=models.DateTimeField(auto_now_add=True)

views.py

def register(request):
    custom_errors={}
    if(request.method=="POST"):
        form=RegisterForm(request.POST,request.FILES)
        if(form.is_valid()):
            if(form.cleaned_data['ad_password'] == form.cleaned_data['ad_password_s']):
                request.session['qtz-email-storage']=form.cleaned_data['ad_email']
                request.session['qtz-remember-storage']=True
                db_model=QL_FREE_DT(ql_free_img_link=form.cleaned_data['ad_profile'],ql_free_name=form.cleaned_data['ad_name'],
                    ql_free_email=form.cleaned_data['ad_email'],ql_free_pass=make_password(form.cleaned_data['ad_password']),
                    ql_free_username=form.cleaned_data['ad_username'],ql_free_gender=form.cleaned_data['ad_genre'])
                db_model.save()
                return HttpResponseRedirect('/login')
            else:
                custom_errors['dif-passwords']="Contraseñas no coinciden"
        print(form.cleaned_data)
    else:
        form=RegisterForm()
    return render(request,'core/register.html',{'form':form,'custom_errors':custom_errors})

PD: Я уже настроил URL-адрес каталога мультимедиа и root

Снимок экрана из каталога, в котором вы можете найти путь к профилю изображения по умолчанию

Редактировать: Я уже пытался добавить qtz_default в мой каталог MEDIA_ ROOT, настроенный в settings.py

...