如何组合两个模型,并在管理部分只制作一个表单?

时间:2017-03-27 20:46:34

标签: django django-admin

我有两种型号的产品和ProductImages。但我必须以不同的方式提交管理部分。是否有任何选项可以在管理中将单个表单中的两个模型的所有字段组合在一起。我在产品和图像之间有一对多的关系。

class Products(models.Model):

   product_name = models.CharField(max_length = 50)
   sku = models.CharField(max_length = 50)
   details = models.TextField(null = True)
   price = models.FloatField(default='0.00')
   created_at = models.DateTimeField(auto_now_add=True)
   updated_at = models.DateTimeField(auto_now=True)

   def __unicode__(self):
    return '%s %s' % (self.product_name, self.sku)

class ProductImages(models.Model):

   product = models.ForeignKey('Products', on_delete=models.CASCADE)
   images = models.ImageField(upload_to = 'images/product_images/', default = '')
   created_date = models.DateTimeField(auto_now_add=True)`enter code here`
   updated_date = models.DateTimeField(auto_now=True)

1 个答案:

答案 0 :(得分:4)

您可以使用InlineModelAdmin,请参阅documentation

admin.py

from django.contrib import admin

class ProductImagesInline(admin.TabularInline):
    model = ProductImages

class ProductsAdmin(admin.ModelAdmin):
    inlines = [
        ProductImagesInline,
    ]