带有预定义内联的Django管理表单

2024-09-30 18:17:44 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是让内联模型根据其他模型预先选择一些字段。在

举个例子:

class Document(models.Model):
    DOC_TYPES = ((DC1, 'Doc type 1'), (DC2, 'Doc type 2'))
    doctype = model.CharField(choices=DOC_TYPES, default=DC1)

class OptionCategory(models.Model):
    name = model.CharField()

class Option(models.Model):
    document = models.ForeignKey(Document)
    option_category = models.ForeignKey(OptionCategory)
    some_data = models.CharField()

假设选项是在文档模型管理中内联定义的。在

OptionCategory是必需的-这些可能是由管理员添加的-我希望有一个文档的创建表单,在内联表单中有很多选项模型,因为有选项类别。使用Option模型管理中的附加功能可以轻松实现这一点。问题是:

  1. 如何用预先选择的不同选项类别显示每个内嵌字段?在
  2. 如何动态地更改选项(在OptionCategory中添加相似的doctype字段后基于Document.doctype)-最好使用ajax?在

Tags: 模型docmodelmodelstype选项documentdoctype
1条回答
网友
1楼 · 发布于 2024-09-30 18:17:44
  1. 如何使用预选的不同选项类型显示每个内联字段:

在模型.py在

    class DocType(models.Model):
        name = models.CharField(max_length=255)

        def __unicode__(self):
            return self.name


    class Document(models.Model):
        doc_type = models.ForeignKey(DocType)
        some_data = models.CharField(max_length=255)

        def __unicode__(self):
            return self.some_data


    class OptionType(models.Model):
        name = models.CharField(max_length=255)
        doc_type = models.ForeignKey(DocType)

        def __unicode__(self):
            return self.name


    class Option(models.Model):
        document = models.ForeignKey(Document)
        option_type = models.ForeignKey(OptionType)
        some_data = models.CharField(max_length=255)

        def __unicode__(self):
            return self.some_data

在管理员py在

^{pr2}$

相关问题 更多 >