the5fire / typeidea

Django企业开发实战对应项目代码
http://django-practice-book.com/
Other
439 stars 214 forks source link

关于同一页面关联数据的编辑 #39

Open wf4867612 opened 4 years ago

wf4867612 commented 4 years ago

老师,您好: 作者这个字段是不能为空的,所以PostInline 这个类,定义完之后,如果直接编辑标题和摘要就提交是会报错,owner_id 不能为空的。 我想要提交的时候直接能够把当前用户提交上去,但是在这个admin.TabularInline父类中是没有关于save方法的。

MaoningGuan commented 4 years ago

在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()