【问题标题】:Django - dynamic forms for GenericForeignKeyDjango - GenericForeignKey 的动态表单
【发布时间】:2013-06-18 19:43:54
【问题描述】:

如何根据用户的 content_type 选择动态创建/处理表单?

我正在编写一个视图/模板,用于添加一个模型持有其他模型的通用键的对象:

 class MainModel(models.Model):
        title = models.CharField()
        author = models.ForeignKey(User)
...
        content_type = models.ForeignKey(ContentType)
        object_id = models.PositiveIntegerField()
        content_object = generic.GenericForeignKey('content_type', 'object_id')

class FileModel(models.Model):
    file = models.FileField()
    content = generic.GenericRelation(MainModel)


class UrlModel(models.Model):
    url = models.UrlField()
    content = generic.GenericRelation(MainModel)

我想给用户一个页面(用于添加对象),他/她可以在其中填写标题、作者、...字段并选择 content_type(下拉列表)并填写所选 content_type 的字段,例如如果选择了 FileModel,则为文件。然后应该使用一个“发送”按钮将其发送到视图,在该视图中将创建所选 content_type 和 MainModels 的适当对象。 我正在考虑使用一些 ajax/jquery 来“扩展”初始表单,其中包含来自选定 content_type 的字段,但欢迎任何其他关于如何正确执行的建议。

【问题讨论】:

    标签: python django forms generic-foreign-key


    【解决方案1】:

    以防万一有人从中受益。

    我最终得到了 2 个具有不同前缀的表单:1) 用于 MainModel,2) 为选定的 content_type 动态创建。表单 2) 的字段通过 ajax/jquery 加载函数动态添加到站点(在 content_type 选择上)。数据的处理和正确的保存在视图中处理。

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      相关资源
      最近更新 更多