[英]form don't save in django
I create a weblog and want add create view this is my form我创建了一个博客并想要添加创建视图这是我的表单
def create_blog_view(request):
if request.method == 'POST':
blog_form = BlogForm(request.POST)
if blog_form.is_valid():
new_form = blog_form.save(commit=False)
new_form.author = request.user
new_form.save()
return redirect('blog_list')
else:
print('its bog')
else:
blog_form = BlogForm()
return render(request, 'pages/create_blog.html', context={
'form': blog_form
})
and this my model这是我的 model
class Blog(models.Model):
title = models.CharField(max_length=100)
cover = models.ImageField(upload_to='blog_cover/')
description = models.CharField(max_length=200)
text = models.TextField()
author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
active = models.BooleanField(default=False)
date_create = models.DateField(auto_now_add=True)
date_modified = models.DateField(auto_now=True)
def __str__(self):
return f'{self.title} : {self.author}'
def get_absolute_url(self):
return reverse('blog_detail', args=[self.id])
when I submit my form data don't save I want author auto quantification当我提交我的表单数据时不保存我想要作者自动量化
if blog_form.is_valid():
new_form = blog_form.save(commit=False)
new_form.author = request.user
new_form.save()
return redirect('blog_list')
else:
print('bug is here')
I tried that and printed bug is here (when try from admin panel everything is right)我试过了,打印的错误在这里(当从管理面板尝试时,一切都是正确的)
In Your Blog
Model have ImageField()
so you need to pass request.FILES and also need to add enctype="multipart/form-data"
in HTML form like this在你的
Blog
Model 中有 ImageField ImageField()
所以你需要传递 request.FILES 并且还需要像这样在 HTML 中添加enctype="multipart/form-data"
def create_blog_view(request):
if request.method == 'POST':
blog_form = BlogForm(request.POST,request.FILES)
if blog_form.is_valid():
new_form = blog_form.save(commit=False)
new_form.author = request.user
new_form.save()
return redirect('blog_list')
else:
print('its bog')
else:
blog_form = BlogForm()
return render(request, 'pages/create_blog.html', context={
'form': blog_form
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<button type="submit">Add Data</button>
</form>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.