使用javascript将django表单动态插入模板?
我想在同一模板上添加相同的django表单实例。我已经在前面添加了一个,另一个使用javascript动态添加 例如,“form”是一个django表单:使用javascript将django表单动态插入模板?,django,django-templates,django-forms,Django,Django Templates,Django Forms,我想在同一模板上添加相同的django表单实例。我已经在前面添加了一个,另一个使用javascript动态添加 例如,“form”是一个django表单:newcell.innerHTML={{form.firstname}; 问题是,当我提交表单时,在视图中,请求对象只有一个值(不是使用javascript添加的值)。如何获取在运行时动态添加的其他表单元素值 这有点像gmail中的“附加另一个文件”功能,当用户点击“附加另一个文件”加号按钮时,用户会看到一个文件上载字段,新字段会被动态添加到D
newcell.innerHTML={{form.firstname};
问题是,当我提交表单时,在视图中,请求对象只有一个值(不是使用javascript添加的值)。如何获取在运行时动态添加的其他表单元素值
这有点像gmail中的“附加另一个文件”功能,当用户点击“附加另一个文件”加号按钮时,用户会看到一个文件上载字段,新字段会被动态添加到DOM中您可以尝试将
文件字段
分离到文件模型中
看看下面的伪代码(比如基于内存的python——我现在已经转到clojure)
models.py
class FileModel(models.Model):
file = models.FileField()
...
class ThingToWhichYoureAttaching(models.Model):
name = models.CharField()
attachments = models.ManyToManyField(FileModel)
...
class FileForm(forms.ModelForm):
class Meta:
model=FileModel
class ThingForm(forms.ModelForm):
attachments = forms.MultipleChoiceField()#override the manytomany form field with style field of your choice.
class Meta:
model=ThingToWhichYoureAttaching
forms.py
class FileModel(models.Model):
file = models.FileField()
...
class ThingToWhichYoureAttaching(models.Model):
name = models.CharField()
attachments = models.ManyToManyField(FileModel)
...
class FileForm(forms.ModelForm):
class Meta:
model=FileModel
class ThingForm(forms.ModelForm):
attachments = forms.MultipleChoiceField()#override the manytomany form field with style field of your choice.
class Meta:
model=ThingToWhichYoureAttaching
当他们用加号按钮弹出窗口时,显示FileForm
,但在主页上保持ThingForm
不变。你也可以在主页上为没有javascript的人设置一个带有ThingForm
的初始文件字段。只需确保在之前处理FileForm
表单
,以便文件可用于该对象
在处理弹出表单时,您可以使用AJAX(我建议)将文件表单提交到服务器,并返回标记以在附件字段中插入文件。不清楚您的问题是什么。请您详细解释一下。这类似于“附加另一个文件”gmail中的一个功能,当用户点击“附加另一个文件”加上按钮时,会向用户显示一个文件上传字段,新字段会即时添加到DOM中。我认为您应该向我们展示更多的代码。根据您所说的,我认为您实际上很可能试图将多个值传递给单个表单字段。您应该看看“表单集”和“内联表单集”。