第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

django - 我的表單不會保存添加的 M2M 對象。為什么?

django - 我的表單不會保存添加的 M2M 對象。為什么?

慕田峪9158850 2021-10-12 10:46:42
我的代碼:class DataSourceCreateView(CreateView):    model = DataSource    form_class = DataSourceForm    template_name = 'engine/datasource_create.html'    def get_form_kwargs(self):        kwargs = super().get_form_kwargs()        kwargs['user'] = self.request.user        return kwargs    def form_valid(self, form):        f = form.save(commit=False)        f.creator = self.request.user        f.save()        dsr_pk = form.cleaned_data['dataset_request']        if dsr_pk != 'noval':            print(dsr_pk)            dsr = DatasetRequest.objects.get(pk=dsr_pk)            f.dataset_requests.add(dsr)            print(f)            print(f.dataset_requests)            f.save()        return super(DataSourceCreateView, self).form_valid(form)為什么我的表單沒有添加dsr到f.dataset_requests?表單保存并繼續(xù),而不添加dsr到f.dataset_requests. 我將 dataset_request 字段變成了單個選擇字段,而不是 DataSourceForm 中的多個選擇字段。提前致謝
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

我認為您可以save_m2m用于保存 ManyToMany 關系。你可以這樣試試:


class DataSourceCreateView(CreateView):

    model = DataSource

    form_class = DataSourceForm

    template_name = 'engine/datasource_create.html'


    def get_form_kwargs(self):

        kwargs = super().get_form_kwargs()

        kwargs['user'] = self.request.user

        return kwargs


    def form_valid(self, form):


        f = form.save(commit=False)

        f.creator = self.request.user

        f.save()

        form.save_m2m()

        return HttpResponseRedirect(self.get_success_url())  # Not calling Super here


查看完整回答
反對 回復 2021-10-12
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

最終覆蓋了我的 DataSourceForm 的保存方法以使其工作。


查看完整回答
反對 回復 2021-10-12
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號