2013-08-05 44 views
0

我試圖獲得可無限次添加的PurchaseOrder。也許這是很容易,我想,但這裏是我在這個想象的問題:試圖通過嵌入方式獲取多個對象

我會把它喜歡的地方,而不是增加另一個VendorProfile,它會添加其他的PurchaseOrder。我的最終目標是能夠在同一個添加屏幕上添加1,2,20等PurchaseOrder。不能添加PurchaseOrder,然後添加VendorProfile。 下面是一些代碼:在models.py

class PurchaseOrder(models.Model): 
    product = models.CharField(max_length=256) 
    dollar_amount = models.FloatField() 
    item_number = models.AutoField(primary_key=True) 
    vendor = models.ForeignKey('VendorProfile') 

class VendorProfile(models.Model): 
    name = models.CharField(max_length=256) 
    address = models.CharField(max_length=512) 
    city = models.CharField(max_length=256) 

在admin.py

class ProductInline(admin.StackedInline): 
    model = VendorProfile 
    extra = 3 


class PurchaseOrderAdmin(admin.ModelAdmin): 
    #... 
    inlines = [ProductInline] 

回答

2

如果我理解正確的話,你whant聯想很多的PurchaseOrder的一個VerndorProfile。在這種情況下,最好使用ManyToManyField。
實施例:

models.py:

class PurchaseOrder(models.Model): 
    product = models.CharField(max_length=256) 
    dollar_amount = models.FloatField() 
    item_number = models.AutoField(primary_key=True) 

    def __unicode__(self): 
     return u'{} {}'.format(self.product, self.dollar_amount) 


class VendorProfile(models.Model): 
    name = models.CharField(max_length=256) 
    address = models.CharField(max_length=512) 
    city = models.CharField(max_length=256) 
    purchased_orders = models.ManyToManyField('PurchaseOrder') 

admin.py

class VendorProfileAdmin(admin.ModelAdmin): 
    filter_horizontal = ('purchased_orders',) 
admin.site.register(VendorProfile, VendorProfileAdmin) 

enter image description here

+0

不完全我編輯的圖像以希望更有意義。 http://i.imgur.com/oXurRe3.png?1和http://i.imgur.com/PnRWAnr.png?1所以,當我去添加PurchaseOrder時,我可以添加一個,然後我有添加2,3,4等選項。我遇到的問題是它給我一個錯誤。也許我正在反思這一點,還有一種更簡單的方法來添加一個實現,指出「添加另一個採購訂單」 – Mdjon26

+0

我不認爲有一種方法可以在「Add PurchaseOrder」頁面上一次添加多個PurchaseOrder項目。我更新了照片。也許它會更清晰。 – GreyZmeem

相關問題