我認爲我需要做的實際上與inlineformset相反。Django以一種形式編輯模型對象和引用對象
說我有:
from django.db import models
class Type(models.Model):
description = models.CharField(max_length=50)
status = models.ForeignKey(Status)
def __unicode__(self):
return self.description
class ColorType(models.Model):
type = models.ForeignKey(Type)
color = models.ForeignKey('Color')
status = models.ForeignKey(Status)
def __unicode__(self):
return u'%s %s' % (self.type, self.color)
class Color(models.Model):
description = models.CharField(max_length=50)
status = models.ForeignKey(Status)
types = models.ManyToManyField(type, through=ColorType)
def __unicode__(self):
return self.description
class Chair(models.Model):
description = models.CharField(max_length=50)
status = models.ForeignKey(Status)
colorType = models.ForeignKey(ColorType)
現在我需要一個表單編輯我在其中輸入彩色椅子和separatedly類型(如顯示的的ColorType一個modelformset)。如果組合不存在,應用程序必須創建必要的ColorType實例(併爲其分配默認狀態)並將其分配給椅子。
我覺得整個情況是常見的,應該是我失去了一些東西......