我认为我需要做的实际上与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实例(并为其分配默认状态)并将其分配给椅子。
我觉得整个情况是常见的,应该是我失去了一些东西......