Django 向我发送以下错误: 值错误位于 / “头像”属性没有与之关联的文件。
即使我在注册虚拟个人资料时上传了头像,登录后也会出现该消息。
我什至在配置的路径:media/avatars 中找不到头像。
您能帮我看看我错在哪里吗? 下面是我的代码。
**模型.py: **
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
(some code)
avatar = models.ImageField(upload_to='avatars/',blank=True, null=True)
**表单.py: **
class RegisterForm(UserCreationForm):
(some code)
avatar = forms.ImageField(
required=False,
widget=forms.ClearableFileInput(
attrs={
"class": "form-control"
}
)
)
class Meta:
model = User
fields = ['username','first_name','last_name','email','avatar','password1','password2','user_type']
**设置.py: **
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_DIR = BASE_DIR / 'media'
STATIC_ROOT = BASE_DIR / 'staticfiles'
MEDIA_ROOT = BASE_DIR / 'media'
我将其添加到主项目目录的urls.py中:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
最后是我要上传头像的路径:
主要项目 ├── 媒体 │ ├── 头像
非常感谢您的帮助
我试图让所有上传的头像都转到媒体/头像。
我什至设定了有占位符图像的条件,以防用户不上传任何头像:
{% if user.avatar %}
<img src="{{ user.avatar.url }}">
{% else %}
<img src="{% static 'images/cat.png' %}">
{% endif %}
static/images/ 中确实有一个“cat.png”图像
希望您没有忘记应用 makemigration 并迁移!你有它的 github 存储库吗,我想在发表评论之前先看一下。