
首先安装Pillow
pip install Pillow
然后呢在settings中配置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\", "/")MEDIA_URL = '/media/'
在全局URL中配置
from django.conf.urls.static import staticfrom django.conf import settingsurlpatterns = [///] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
之后就是添加字段啦,毕竟得有字段对应对吧。前往相应的app下的models
picture =models.ImageField(upload_to='images/', blank=True, verbose_name=_('个人头像'))attachment = models.FileField(upload_to='file/', blank=True, verbose_name=_('简历附件'))
编辑完自然就要同步数据库了
- python manage.py makemigrations
- python manage.py migrate
接着前往admin层配置将要显示的字段,比如picture,或者自定义字段(头像)
from settings.base import MEDIA_URLclass ResumeAdmin(admin.ModelAdmin):list_display = ('admin_sample', 'username', 'applicant', 'city', 'apply_position', 'bachelor_school', 'master_school', 'major', 'created_data')fieldsets = ((None, {'fields': ('applicant', ('picture', 'username', 'city', 'phone','attachment',),('email', 'apply_position', 'born_address', 'gender',),('bachelor_school', 'master_school',), ('major', 'degree'), ('created_data', 'modified_date'),('candidate_introduction', 'work_experience', 'project_experience',))}),)@admin.display(description='头像', )def admin_sample(self, obj):if not obj.picture:return ""else:return mark_safe('<img src="%s%s" height="50" width="50" />'%(MEDIA_URL, obj.picture,))
还有一点就是要在html文件中的form表单中添加
enctype=”multipart/form-data”
<form method="post" class="form" enctype="multipart/form-data" style="width:300px; margin-left:5px">{% csrf_token %}{% bootstrap_form form %}{% buttons %}<button type="submit" class="btn btn-primary">提交</button>{% endbuttons %}</form>
在html中添加图片的话则是
<img src="{{MEDIA_URL}}{{object.picture}}" height="50" width="50" />
注意,MEDIA_URL要能够成功引用,需要再settings中添加配置
首先在setting.py中 TEMPLATES 下面的 ‘context_processors’: 里面添加 ‘django.template.context_processors.media’,
进阶!存在数据库中毕竟不大妥,应该上传在oss云端上,具体的到时候在说咯~
