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]
4

1 回答 1

2

如果我对您的理解正确,您想将许多 PurchaseOrder 与一个 VerndorProfile 相关联。在这种情况下,最好使用 ManyToManyField。
例子:

模型.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')

管理员.py

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

在此处输入图像描述

于 2013-08-05T16:30:51.483 回答