小编mrz*_*mrz的帖子

在django-extra-views中预先填充和保存内联

我正在使用django-extra-views,我想用预先填充的数据填充表单及其相关的内联,然后保存(创建对象).到目前为止,我有:

from extra_views import CreateWithInlinesView

class ItemCreateView(extra_views.CreateWithInlinesView):

    def dispatch(self, request, item_pk, *args, **kwargs):
        self.item = models.Item.objects.get(id=item_pk)
        return super(ItemCreateView, self).dispatch(
            request, *args, **kwargs
        )

    def get_initial(self):
        # Thanks to that method a form is populated with initial data.
        return forms.ItemCreateForm(instance=self.item).initial

    def construct_inlines(self):
        # Thanks to that method a form and its inlines are prepopulated successfully.
        ItemFormSet = inlineformset_factory(models.Item, models.ItemEntry, extra=0)
        formset = ItemFormSet(instance=self.item)
        return [formset]
Run Code Online (Sandbox Code Playgroud)

但是,尽管内联值是通过POST发送的,但是保存对象时没有内联.我究竟做错了什么?我应该初始化表单并以不同的方式内联吗?

django django-forms formset inline-formset

5
推荐指数
0
解决办法
499
查看次数

标签 统计

django ×1

django-forms ×1

formset ×1

inline-formset ×1