我的创建视图在创建后很久才重定向到博客主页,但
我找不到任何已创建的帖子或管理员页面的帖子,有人能帮助请
这是我观点
@login_required
def add_post(request):
if request.method == 'POST':
post_form = PostForm(request.POST, request.FILES, instance=request.user)
snippet_form = SnippetForm(request.POST)
if post_form.is_valid() and snippet_form.is_valid():
post = post_form.save(commit=False)
snpt = snippet_form.save(commit=False)
post.creator = request.user
snpt.id = post.id
post.save() and snpt.save()
return redirect('blog:index')
else:
post_form = PostForm()
snippet_form = SnippetForm()
return render(request, 'blog/add_post.html', {'post': post_form, 'snpt': snippet_form})
这个视图有什么问题,因为我可以从管理员添加新帖子来保存新帖子,但从客户端它不保存任何东西
我是否需要在此处使用model create()方法?
我会提供任何必要的片段,但问题就在这个片段中*任何帮助都是非常重要的**
更新日期:
我的帖子模型
class Post(models.Model):
...
creator = models.OneToOneField(settings.AUTH_USER_MODEL...
snippet = models.OneToOneField(Snippet,...
...
1条答案
按热度按时间wnrlj8wa1#
应为:
我怀疑您在想(通过使用关键字
and
)您希望确保同时保存两个模型,但您实际上是在要求Python比较两个函数的返回结果,以查看它们是否都为True;这会破坏你的代码(因为保存()返回None,只有你的第一个save()在运行,因为Python甚至不会执行第二个save(),因为当第一个save()已经返回Falsey时,它们不可能都是True)。您可能会发现this question在您的方案中非常有用。