如何根据用户 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 的字段,但欢迎任何其他关于如何正确执行的建议。