python - Django - Save a new table1.PK and table2.PK and table2.FK -


I created 2 forms based on the Digengo-Crisp forms.

  1. Form1 shows Ordrhader
  2. Form 2 shows the Orderline in formats

When I have an existing order header, So I see the headers and the lines, I can adjust and save open forms, just fine.

When I open the form blank, I select a customer in the order header and then add some order lines, but here the orderline can not save any FK value for the orderline.

Question: I order it. P.K. Order order How Can I Save When I Submit a Hit?

my thoughts

def orderline_formset (request, id = none): If ID: OrderID = OrderHeader.objects.get (P = ID) and: OrderID = OrderHeader () OrderLineFormSet = inlineformset_factory (OrderHeader, order line, OrderLineForm, additional = 1, can_delete = true) form = OrderHeaderForm (eg = OrderID) formset = OrderLineFormSet (eg = OrderID) Assistant = OrderLineFormSetHelper () If the request. method == 'POST': OrderLine.orderheader = OrderID formset = OrderLineFormSet (request.POST, eg = Orderid) if formset.is_valid (): formset.save () messages.success (request command saved successfully! " ) And: messages.error (request, 'order s And error, in Czech field below ') Other: formset = Orderline Farmset (eg = respectively) returns Rank_ot_prkramn ( "command. , {' orderform ': form,' formset ': formset,' helper ': helper}, context_instance = RequestContext (request))

I forms.py

<> class OrderHeaderForm (forms.ModelForm) pre: def __init __ (self, * args, * * kwargs): Super (OrderHeaderForm, self) .__ init __ (* args, ** kwargs) self.helper = FormHelper (self) self.helper.form_tag = false class meta-model = OrderHeader class OrderLineForm (forms.ModelForm): Def __init __ (self, * args, ** kwargs): super (OrderLineForm, self) .__ init __ (* args, ** kwargs) square met Model = Order Line class OrderLineFormSetHelper (FormHelper): def __init __ (self, * args, ** kwargs): Super (OrderLineFormSetHelper, self) .__ init __ (* args, ** kwargs) self.form_method = 'post' own . Template = "Bootstrap 3 / Tebl_inlain_armstrat. Html 'self.render_required_fields = True self.form_tag = False

The error was that I was just saving the format and not the form. So I changed my views.py to the following;

  If request.method == 'POST': form = OrderHeaderForm (request.POST, instance = orderid) formset = OrderLineFormSet (request.POST, instance = orderid) If form.is_valid () and formset.is_valid (): form.save () formset.save () messages.success (request command saved successfully! ')  

Comments

Popular posts from this blog

winforms - C# Form - Property Change -

javascript - amcharts makechart not working -

java - Algorithm negotiation fail SSH in Jenkins -