代码之家  ›  专栏  ›  技术社区  ›  Niladry Kar

Django:内联表单集的更新表单不工作

  •  1
  • Niladry Kar  · 技术社区  · 7 年前

    class MultijournaltotalForm(forms.ModelForm):
    
        class Meta:
            model = Multijournaltotal
            fields = ('Date', 'Total_Debit', 'Total_Credit')
            widgets = {
                'Date': DateInput(),
            }
    
        def __init__(self, *args, **kwargs):
            self.user = kwargs.pop('User', None)        
            self.company = kwargs.pop('Company', None)
            super(MultijournaltotalForm, self).__init__(*args, **kwargs)
            self.fields['Date'].widget.attrs = {'class': 'form-control',}
            self.fields['Total_Debit'].widget.attrs = {'class': 'form-control',}
            self.fields['Total_Credit'].widget.attrs = {'class': 'form-control',}
    
    
    class MultijournalForm(forms.ModelForm):
    
        class Meta:
            model = Multijournal
            fields = ('By','To','Debit','Credit','narration')
    
    
        def __init__(self, *args, **kwargs):
            self.User = kwargs.pop('User', None)        
            self.Company = kwargs.pop('Company', None)
            super(MultijournalForm, self).__init__(*args, **kwargs)
            self.fields['Debit'].widget.attrs = {'class': 'form-control',}
            self.fields['Credit'].widget.attrs = {'class': 'form-control',}
            self.fields['To'].widget.attrs = {'class': 'form-control select2',}
            self.fields['By'].widget.attrs = {'class': 'form-control select2',}
            self.fields['narration'].widget.attrs = {'class': 'form-control',}
    
    
    Multijournal_formSet = inlineformset_factory(
        Multijournaltotal, 
        Multijournal,
        form=MultijournalForm, 
        extra=6,
    )
    

    我在更新我的电脑时遇到了一个问题 inline formset 从很长一段时间。create视图工作得非常好,但是当我尝试更新 Multijournal 在里面 Multijournaltotal 那么对象就不会显示在表单集中。。。

    class Multijournal_updateview(LoginRequiredMixin,UpdateView):
        model = Multijournaltotal
        form_class  = MultijournaltotalForm
        template_name = 'Multijournal/multi_journal_form.html'
    
    
        def get_success_url(self,**kwargs):
            company_details = get_object_or_404(Company, pk=self.kwargs['pk'])
            multijournal_details = get_object_or_404(Multijournaltotal, pk=pk2)
            selectdatefield_details = get_object_or_404(Selectdatefield, pk=self.kwargs['pk3'])
            return reverse(
                'accounting_double_entry:multijournaldetail', 
                kwargs={
                    'pk1':company_details.pk,
                    'pk2':multijournal_details.pk,
                    'pk3':selectdatefield_details.pk
                },
            )
    
    
    
        def get_context_data(self, **kwargs):
            context = super(Multijournal_updateview, self).get_context_data(**kwargs) 
            company_details = get_object_or_404(Company, pk=self.kwargs['pk'])
            context['company_details'] = company_details
            selectdatefield_details = get_object_or_404(Selectdatefield, pk=self.kwargs['pk3'])
            context['selectdatefield_details'] = selectdatefield_details
            multijournal_details = get_object_or_404(Multijournaltotal, pk=self.kwargs['pk2'])
            queryset = Multijournal.objects.filter(total= multijournal_details.id)
    
            multijournalformset = Multijournal_formSet(self.request.POST or None, queryset=queryset)
            context['multijournalformset'] = multijournalformset
    
    
            return context
    

    有人能告诉我我走的方向是否正确吗?

    谢谢你

    0 回复  |  直到 7 年前