尝试使用内联来获取多个对象

问题描述 投票:0回答:1

我正在尝试获得可以无限次添加的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]
python django
1个回答
2
投票

如果我理解正确,您需要将许多采购订单与一个VerndorProfile相关联。在这种情况下,最好使用ManyToManyField。 例:

models.朋友:

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.朋友

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

© www.soinside.com 2019 - 2024. All rights reserved.