如何在 Django 中创建相关模型的实例

sev*_*een 5 python django models

我正在开发一个 CMSy 应用程序,我已经为其实现了一组模型,这些模型允许创建自定义模板实例,由多个字段组成并绑定到特定客户。最终目标是可以通过管理界面定义一个或多个具有一组自定义字段的模板并将其关联到客户,这样客户就可以按照模板规定的格式创建内容对象。

我似乎已经将其连接起来,以便我可以创建任意数量的 Template 对象,但是我正在努力解决如何在这些模板中创建实例 - 实际内容对象。例如,我可以为客户“Acme”定义一个模板“Basic Page”,其中包含字段“Title”和“Body”,但我还没有弄清楚如何创建可以填写这些字段的基本页面实例。

这是我的(有点省略)模型......

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()
Run Code Online (Sandbox Code Playgroud)

提前感谢您的任何建议!

Dan*_*man 0

它只是:

my_customer.templates.add(my_template)
Run Code Online (Sandbox Code Playgroud)

其中my_customer和分别是和my_template的实例。CustomerTemplate

请参阅相关对象的文档