django - 我不能在 Django 中发帖
问题描述
我不能在 Django 中发帖,因为当我导入图像时它对我不起作用。它告诉我没有选择文件,但我选择了一个。
这是我创建的后期模型,models.py 文件:
class Post(models.Model):
publisher = models.ForeignKey(User,on_delete=models.CASCADE)
caption = models.CharField(max_length=100)
date_created = models.DateTimeField(default=timezone.now())
image = models.ImageField(upload_to="post_images")
def __str__(self):
return self.caption
这是 Post 模型的 forms.py 文件:
from django import forms
from .models import Post
class CreatePostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['caption','image']
这是views.py文件中的发布功能,它实现了我的发布功能的逻辑:
@login_required
def Publish(request):
if request.method == "POST":
form = CreatePostForm(request.POST,request.FILES)
if form.is_valid():
form.publisher = request.user
form.save()
return redirect("home")
else:
form = CreatePostForm()
return render(request,"posts/publish.html",{
"form":form,
})
int urls.py 文件:
from django.urls import path
from . import views
urlpatterns = [
path('publish/',views.Publish,name="publish"),
path('',views.home,name="home"),
]
这是在html模板中:
{% extends "users/base.html" %}
{% load crispy_forms_tags %}
{% block title %}create{% endblock title%}
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-sm-6 col-md-5 authentification">
<div class="form-header">
<h1>
publish
</h1>
</div>
<div class="form-body">
<form method="POST">
<fieldset class="form-group" enctype="multipart/form-data">
{% csrf_token %}
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-primary form-control">publish</button>
</div>
</form>
</div>
</div>
</div>
</div>
{% endblock content %}
使用的 Django 版本是 2.2 和 Python 3.8。和 Windows 10 专业版
解决方案
推荐阅读
- ios - Fastlane - 为 fastlane 插件配置未定义的方法
- java - 多线程时灰度图像算法比顺序慢
- python - 从 vb 代码到 python 的串行通信和问题
- google-home - 为什么 Google Home 不总是与服务器通信?
- c# - 如何在 WPF 中设置 TabControl Header 的高度?
- ios - 如何在 UITableViewCell 中居中自定义 CAShapeLayer?
- ibm-mq - MQ 异常:MQRC_SSL_PEER_NAME_MISMATCH
- javascript - 在调试器控制台中运行 es6
- lotus-notes - 如果在对任何文档进行更改后无法正确读取
- css - 如何仅将 css 导入一个组件?