Open MaoningGuan opened 4 years ago
你按书上的代码敲完之后,重新运行程序,当你在分类编辑页添加新的文章,保存的时候会提示以下错误: **NOT NULL constraint failed: blog_post.owner_id***
这是因为post的owner字段还没有赋值,但是该字段声明的时候设置为Not Null。 解决办法: 在CategoryAdmin中添加以下函数代码:
def save_formset(self, request, form, formset, change): """ 修改关联对象数据 """ instances = formset.save(commit=False) for instance in instances: if not hasattr(instance, 'owner'): # 防止误修改其他文章的作者 instance.owner = request.user # 给owner字段赋值 instance.save() formset.save_m2m()
在save_formset()函数中,可以修改关联对象post中的字段。
多说一句,在PostInline 要把你要编辑的Post字段要设置显示出来,
fields = ( 'title', 'desc', 'status', 'content', 'tag', )
这里设置的就是你要在Category编辑页中显示Post要编辑的字段。 其中post的 'category'字段不需要设置,,它默认的值就是你当前编辑的分类。
你按书上的代码敲完之后,重新运行程序,当你在分类编辑页添加新的文章,保存的时候会提示以下错误: **NOT NULL constraint failed: blog_post.owner_id***
这是因为post的owner字段还没有赋值,但是该字段声明的时候设置为Not Null。 解决办法: 在CategoryAdmin中添加以下函数代码:
在save_formset()函数中,可以修改关联对象post中的字段。
多说一句,在PostInline 要把你要编辑的Post字段要设置显示出来,
这里设置的就是你要在Category编辑页中显示Post要编辑的字段。 其中post的 'category'字段不需要设置,,它默认的值就是你当前编辑的分类。