Django models 在Django中上载用户图像
我在试着让它工作时遇到了一些麻烦。我想创建一个用户,能够上传他们的个人资料图片使用Django。我以为我把一切都设置好了,但它给了我一个错误,说图片找不到。它确实从文件上传中获取了图片,但我认为它没有正确地将其保存在数据库中。下面是相关代码 settings.py:Django models 在Django中上载用户图像,django-models,file-upload,Django Models,File Upload,我在试着让它工作时遇到了一些麻烦。我想创建一个用户,能够上传他们的个人资料图片使用Django。我以为我把一切都设置好了,但它给了我一个错误,说图片找不到。它确实从文件上传中获取了图片,但我认为它没有正确地将其保存在数据库中。下面是相关代码 settings.py: STATIC_URL = '/static/' MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') URL.py: from django.ur
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
URL.py:
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns = [
path('', views.index),
path('feed', views.feed),
path('registar', views.registar),
path('login', views.login),
path('profile', views.profile),
path('profile/<int:id>', views.profileView),
path('add', views.add),
path('add1', views.add1),
path('follow/<int:id1>/<int:id2>', views.follow),
path('unfollow/<int:id1>/<int:id2>', views.unfollow),
path('events', views.events),
path('event/submit', views.eventSubmit),
path('like/<int:id>', views.like),
path('logout', views.logout),
path('settings', views.settings),
path('viewAcc', views.viewAcc),
path('editPass', views.editPass),
path('passEdit', views.passEdit),
path('newPass', views.newPass),
path('updatePass', views.updatePass),
path('reply', views.reply),
path('editPro', views.editPro),
path('updatePro', views.updatePro)
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py:
class User(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
user_name = models.CharField(max_length=255, default=None)
email = models.CharField(max_length=255)
password = models.CharField(max_length=255)
friend = models.ManyToManyField('self', through='Relationship', symmetrical=False, related_name="related_to")
proImage = models.ImageField(upload_to='profile_image', blank=True)
desc = models.CharField(max_length=255)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
objects = UserManager()
这就是我试图展示它的地方
Profile.html:
<div id="proMain">
<div id="header">
<h2 class="headerH2">{{user.first_name}} {{user.last_name}}</h2>
<div class="backGround"></div>
<div class="others">
{% if user.proImage %}
<img class="profile" src="{{user.proImage.url}}" alt="ProImageHere">
{% else %}
<img class="profile" src="{% static 'img/cowPro.png' %}">
{% endif %}
{% if cUser.id == user.id%}
<form action="editPro" method="post">
{% csrf_token %}
<button class="editPro" type="submit">Edit Profile</button>
</form>
{% endif %}
{{user.first{u name}{{user.last{u name}}
{%if user.proImage%}
{%else%}
{%endif%}
{%if cUser.id==user.id%}
{%csrf_令牌%}
编辑配置文件
{%endif%}
它似乎击中了html中的if语句,因此它可以识别出有一个图像,但它似乎可以找到它并显示它。它显示的是alt。在我提交要保存的图像文件时,由于某种原因,它没有创建媒体文件夹。我相信这就是问题所在,但我不知道如何解决它。
<div id="proMain">
<div id="header">
<h2 class="headerH2">{{user.first_name}} {{user.last_name}}</h2>
<div class="backGround"></div>
<div class="others">
{% if user.proImage %}
<img class="profile" src="{{user.proImage.url}}" alt="ProImageHere">
{% else %}
<img class="profile" src="{% static 'img/cowPro.png' %}">
{% endif %}
{% if cUser.id == user.id%}
<form action="editPro" method="post">
{% csrf_token %}
<button class="editPro" type="submit">Edit Profile</button>
</form>
{% endif %}