Когда пользователь регистрируется в моем приложении. Я получаю эту ошибку, когда он достигает страницы профиля
'ValueError at /profile/:The 'image' attribute has no file associated with
it.'
Это моя модель профиля:
class Profile(models.Model):
Full_Name = models.CharField(max_length=32,blank=True)
Name = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
E_mail = models.EmailField(max_length=70,blank=True)
Qualification = models.CharField(max_length=32,blank=True)
Permanant_Address = models.TextField(blank=True)
image = models.ImageField(upload_to='user_images', null=True, blank=True)
def __str__(self):
return str(self.Name)
def get_absolute_url(self):
return reverse("userprofile:profiledetail")
@property
def image_url(self):
if self.image and hasattr(self.image, 'url'):
return self.image_url
Это моя форма:
class profileform(forms.ModelForm)"
class Meta:
model = Profile
fields = ('Full_Name','Name', 'E_mail','Qualification','Permanant_Address','image')
Это мой взгляд:
from django.shortcuts import render
from django.views.generic import DetailView,UpdateView
from django.contrib.auth.mixins import LoginRequiredMixin
from userprofile.models import Profile
from userprofile.forms import profileform
# Create your views here.
class profiledetailview(LoginRequiredMixin,DetailView):
context_object_name = 'profile_details'
model = Profile
template_name = 'userprofile/profile.html'
def get_object(self):
return self.request.user.profile
class profileupdateview(LoginRequiredMixin,UpdateView):
model = Profile
form_class = profileform
template_name = 'userprofile/profile_form.html'
def get_object(self):
return self.request.user.profile
И в моем шаблоне я сделал что-то вроде этого:
<img class="profile-user-img img-responsive img-circle" src="{{
profile_details.image.url|default_if_none:'#' }}/" alt="User profile
picture">
Я читаю документациюдля встроенных тегов и фильтров шаблона Я думаю, что решение здесь заключается в использовании, и я думаю, что я не могу использовать тег шаблона правильно.
Как я могу настроить этот шаблон, чтобы сделать изображение опцией.Если их нет, оставьте их, но покажите имя человека.
Спасибо