如何把request.user传入Inline的Model中保存?

来源:13-4 自定义列表返回数据,同一个model注册两个管理器

慕码人5158868

2018-08-14

class CourseAdmin(object):
    list_display = ['name', 'keyword', 'create_user', 'fav_num', 'click_num']
    inlines = [LessonInline]
    def save_models(self):
        self.new_obj.create_user = self.request.user
        super().save_models()

在Course的Model中有create_user字段,通过save_models()方法可以将request.user存入。

通过inlines进来Lesson的Model同样有create_user字段,如何将request.user传给Lesson并保存?

写回答

2回答

bobby

2018-08-15

//img.mukewang.com/szimg/5b73e8270001b3f113330519.jpg 你看看这个源码呢

0
2
bobby
回复
慕码人5158868
你可以直接调用save_models中直接根据当前对象去获取所有的已经保存到数据表中的inline数据 然后做修改啊,为什么一定要一开始就从form中获取呢
2018-08-17
共2条回复

慕码人5158868

提问者

2018-08-14

class ArticleAdmin(admin.ModelAdmin):
    def save_formset(self, request, form, formset, change):
        instances = formset.save(commit=False)
        for obj in formset.deleted_objects:
            obj.delete()
        for instance in instances:
            instance.user = request.user
            instance.save()
        formset.save_m2m()

在Django的官方文档中有上面一段,不知道Xadmin在对Inlines的Model做保存时,是否采用了此方法。

0
0

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程