【发布时间】:2011-01-29 17:24:54
【问题描述】:
我正在开发一个 CMSy 应用程序,我已经为其实现了一组模型,这些模型允许创建自定义模板实例,由多个字段组成并与特定客户相关联。最终目标是可以通过管理界面定义一个或多个具有一组自定义字段的模板并将其关联到客户,以便客户随后可以按照模板规定的格式创建内容对象。
我似乎已经把它连接起来,这样我就可以创建任意数量的模板对象,但我正在努力解决如何在这些模板中创建实例 - 实际内容对象。例如,我可以为客户“Acme”定义一个模板“Basic Page”,其中包含“Title”和“Body”字段,但我还没有弄清楚如何创建可以填写这些字段的 Basic Page 实例。
这是我的(有些省略的)模型...
class Customer(models.Model):
...
class Field(models.Model):
label = models.CharField(max_length=255)
component = models.ForeignKey(ContentType,
limit_choices_to={'id__in': component_choices}
)
fields = models.Manager()
class Template(models.Model):
label = models.CharField(max_length=255)
clients = models.ManyToManyField(Customer, blank=True)
fields = models.ManyToManyField(Field, blank=True)
class ContentObject(models.Model):
label = models.CharField(max_length=255)
template = models.ForeignKey(Template)
author = models.ForeignKey(User)
customer = models.ForeignKey(Customer)
mod_date = models.DateTimeField('Modified Date', editable=False)
def __unicode__(self):
return '%s (%s)' % (self.label, self.template)
def save(self):
self.mod_date = datetime.datetime.now()
super(ContentObject, self).save()
提前感谢您的任何建议!
【问题讨论】: