在写文章时,我可以选择上传图片,但是当我这样做时,settings.py 中没有任何反应
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
详细信息.html
<img src="{% if article.image %}{{ article.image.url }}{% endif %}">
模型.html
class Article(models.Model):
title = models.CharField(max_length=50)
text = models.TextField()
image = models.ImageField(blank=True, upload_to='images/%Y/%m/%d')
file = models.FileField(blank=True)
网址.py
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
表格.py
class ArticleForm(ModelForm):
class Meta:
model = Article
fields = ['title', 'text', 'image','file']
视图.py
def detail(request, pk):
article = get_object_or_404(Article, pk=pk)
return render(request, 'content/detail.html',
{'article': article})
def list(request):
return render(request, 'content/list.html', {
'articles': Article.objects.all()
})
def create_article(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
form.save()
return redirect('list')
else:
form = ArticleForm()
return render(request, 'content/create.html', {'form': form})
创建.html
{% extends "base.html" %}
{% block title %}
create article
{% endblock %}
{% block content %}
<form action="." method="post" enctype="multipart/form-data">
{{ form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Save"></p>
</form>
{% endblock %}
了解你的问题。
第一步:create.html
正如我所说,action 属性应该包含一个指向表单处理方法的链接。
第二步:views.py
如果我们上传文件=request.FILES,我们忘记了所需的参数。
第三步:detail.html
存储库中的项目对我有用,出现一个文件夹,下载的文件和照片显示在模板中。