2016-07-05 13 views
-1

Ich habe zwei Tabellen, die miteinander verknüpft sind, die Delivery-Tabelle und Stock-Tabelle. Sie sind miteinander verknüpft, indem delivery_id ein Fremdschlüssel in der Tabelle "Stock" ist. Mein Dilemma ist, dass ich die neu erstellte ID aus dem Lieferungsformular zu meinem Lagerformular bekommen muss. Wie mache ich es?Wie bekomme ich eine neue ID? DJANGO

def delivery(request): 

    form = DeliveryForm(request.POST or None) 
    context = {"form": form} 
    if form.is_valid(): 
     form.save() 
     context = {"message": "Success!"} 
     return HttpResponseRedirect('/post/') 
    else: 
     return render(request, 'inventorysystem/delivery.html', context) 

def stock(request, delivery_id=id): 

    form = StockForm(request.POST or None) 
    context = {"form": form} 
    if form.is_valid(): 
     form.save() 
     context = {"message": "Success!"} 
    return render(request,'inventorysystem/post.html', context) 
+2

bitte PLZ und nicht Screenshot – e4c5

+0

Was meinst du mit "ID vom Lieferschein zum Lagerformular bekommen"? Dies sind verschiedene Anfragen. Sie müssen "alles" kodieren, um die Anfrage in der Anfrage selbst zu rendern (natürlich können Cookies und Datenbanken helfen). – syntonym

Antwort

1

Nun, um mit Ihrem Code zu helfen, sollten Sie Ihre Modellcodes gepostet haben. Aber wie auch immer, zu ‚Link‘ die Modelle sollten Sie diese Schritte in Ihrem Code folgen:

Instanziierungsanwendung Modelle und Erstellen von Beziehungen

Dieser Schritt geht es um eine Variable zu erstellen, die auf dem Liefermodell bezieht.

from YourApp.models import Delivery, Stock 

q = Delivery(SomeField = 'Example', OtherField = 2) 

Jetzt, 'q' hält das Objekt, das Sie die Beziehung mit Stock machen möchten. Der nächste Schritt ist die Instanziierung des Bestands in einer Variablen und dann die Bezugnahme auf das Feld Lieferung im Bestandsmodell auf das Lieferungsobjekt, das wir zuvor erstellt haben. (Hinweis: Das Modell Stock braucht ein Feld wie diese Lieferung = models.ForeignKey (Lieferung, on_delete = models.CASCADE))

z = Stock(SomeField = 'Example3', delivery=q) 

Das ist es. Sie können überprüfen, ob es mit der Django-Shell oder manuell in Ihrer Datenbank funktioniert hat. Hoffe es hilft dir wenigstens ein bisschen.

Verwandte Themen