Python ';类别';此函数的关键字参数django无效
所以,我在写博客,我有班级分类和班级帖子Python ';类别';此函数的关键字参数django无效,python,django,Python,Django,所以,我在写博客,我有班级分类和班级帖子 class Category(models.Model): title = models.CharField(max_length=65) slug = models.SlugField(unique=True) description = models.TextField(max_length=155) class Post(models.Model): author = models.ForeignKey(User
class Category(models.Model):
title = models.CharField(max_length=65)
slug = models.SlugField(unique=True)
description = models.TextField(max_length=155)
class Post(models.Model):
author = models.ForeignKey(User)
categories = models.ManyToManyField(Category)
title = models.CharField(max_length=65)
slug = models.SlugField(unique=True)
description = models.TextField(max_length=155)
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
当我想添加新帖子时,出现了以下错误
异常值:“类别”是此函数的无效关键字参数
这就是我在views.py中的内容,也是应该向数据库添加新帖子的内容
def post_new(request):
if request.user.is_authenticated():
form = PostForm(request.POST or None)
if form.is_valid():
cd = form.cleaned_data
post = Post(title=cd['title'], content=cd['content'],
description=cd['description'],
categories=cd['categories'],
author=User.objects.get_by_natural_key(request.user.get_username()))
post.save()
return redirect(post)
return render_to_response('post_edit.html', {'form': PostForm(request.POST or None)},
context_instance=RequestContext(request))
这里怎么了?(我想PostForm
是一个模型表单)
您可以直接保存表单,并返回一个Post
实例。简单使用
post = form.save(commit=False)
post.author = request.user
post.save()
看
出现错误的原因是,在保存对象之前,无法将其添加到M2M字段中(我假设PostForm
是一个ModelForm)
您可以直接保存表单,并返回一个Post
实例。简单使用
post = form.save(commit=False)
post.author = request.user
post.save()
看
出现错误的原因是,在保存对象之前,无法将其添加到M2M字段如何在
视图.py中导入Post
?您还进行了哪些导入?从models import*和一些其他导入:loader、Context、RequestContext、render等@xnxsax的答案可能是您想要的答案,但您的代码也应该可以工作,所以请检查您是否在某处导入了另一个Post
类(即,在视图.py
中仅用所需的内容替换导入*
)。如何在您的视图中导入Post
。py
?您还进行了哪些导入?从模型导入*和一些其他导入:loader、Context、RequestContext、render等@xnxsax的答案可能是您想要的答案,但您的代码也应该可以,所以请检查您是否在某处导入了另一个Post
类(即,仅将导入*
替换为视图.py
中需要的内容)。如果使用commit=False
,则还必须在之后执行form.savem2m()
,否则将不会保存类别。如果使用commit=False
,则还必须执行form.savem2m()
之后,否则将不会保存类别。