2017-07-01 3 views
0

Hey Alles, was ich bin mit Django 1.10.7Erstellt verwandte Objekte mit django Create

Ich erstelle ein Formular, das einen Speicherort zu einem Speicher erstellt. Nun möchte ich, dass der Speicher bereits mit dem Speicherort des Geschäfts verknüpft ist, wenn das Formular geladen wird.

Die URL hat die richtige ID des Fremdschlüssels des Speichers ex: localhost: 8000 // office/dealer/1/location/create. und ich sehe, dass der Speicherschlüssel in den Anforderungsschlüsselwortargumenten ist. Aber ich kann nicht verstehen, wie ich das in die Form einbeziehe. Jede Hilfe wäre wirklich

geschätzt werden

Hier ist, wie ich meinen Code

#views.py 

class DealerLocationCreateView(CreateView): 
    model = models.DealerLocation 
    fields = ['dealer' 
    'dealer_location_name', 
    'dealer_location_mailing_address', 
    'dealer_location_mailing_city', 
    'dealer_location_mailing_state', 
    'dealer_location_mailing_zipcode', 
    'dealer_location_mailing_phone', 
    'dealer_location_shipping_address', 
    'dealer_location_shipping_city', 
    'dealer_location_shipping_state', 
    'dealer_location_shipping_zipcode', 
    'dealer_location_shipping_phone' 
    ] 

    def form_valid(self, form): 
     form.instance.dealer = self.request.dealer_pk 
     return super(DealerLocationCreateView, self).form_valid(form) 

-

# urls.py 
url(r'^dealer/(?P<dealer_pk>\d+)/location/create', DealerLocationCreateView.as_view(), name='new-location'), 

Antwort

0

Warum nicht verwenden:

def form_valid(self, form): 
    pk = self.kwargs.get("dealer_pk", None) 
    form.instance.dealer = pk 
    return super(DealerLocationCreateView, self).form_valid(form) 
Verwandte Themen