2016-07-05 65 views
-1

我有兩個鏈接在一起的表,即交貨表和庫存表。它們通過delivery_id作爲庫存表中的外鍵鏈接在一起。我的困境是,我必須從交付表單中將新創建的ID存入我的股票表單。我該怎麼做?如何獲得新創建的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

請發郵件而不是截圖 – e4c5

+0

你是什麼意思「從發貨單到發貨單」?這些是不同的要求。您需要編碼您在請求中呈現請求所需的「所有內容」(當然Cookie和數據庫可以提供幫助)。 – syntonym

回答

1

那麼,爲了幫助您的代碼,您應該發佈您的型號代碼。但無論如何,以「鏈接」的模式,你應該按照你的代碼下列步驟操作:

實例化模型和創建關係

這一步是要創建一個參照分發模型中的變量。

from YourApp.models import Delivery, Stock 

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

現在,'q'持有您想與股票建立關係的對象。因此,下一步是在某個變量中實例化庫存,然後將庫存模型中的字段'delivery'引用到我們先前創建的交付對象。 (注:模特Stock需要像這樣的快遞= models.ForeignKey(提貨,on_delete = models.CASCADE)字段)

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

就是這樣。你可以檢查它是否使用django shell或在數據庫中手動工作。 希望它能幫助你至少一點。

相關問題