我需要生成几个textareas,由用户填写并提交回模型。但是,我认为他们需要所有人都有不同的名字(我是否正确?)
如何为每个textarea生成随机名称以及模型如何在获取POST请求的过程中获取数据?
谢谢!
编辑:我希望使用随机生成的名称来识别内容并将其保存在数据库中
答案 0 :(得分:1)
这里很难给你一个好的答案,因为你没有说明你实际想要实现的目标。您可以在表单中添加1000个文本字段,但如果它们与模型上的数据不相关,则没有多大意义,您忽略了这一重要信息。
尽管如此,在非常基础的层面上,您可以将更多的textareas添加到表单中,如下所示:
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
for i in range(1, 11):
self.fields['mytextarea%d' % i] = forms.CharField(label='Textarea %d' % i, widget=forms.Textarea)
<强>更新强>
根据您的评论,以及您打算稍后存储和检索textarea字段的事实,您应该为它们创建一个单独的模型,并通过一对一将其链接到您的主模型很多关系。例如:
class PrimaryModel(models.Model):
... # Stuff here
class TextareaModel(models.Model):
myprimarymodel = models.ForeignKey(PrimaryModel)
mytextarea = models.TextField()
很难给出一个很好的例子,因为你没有说明模型的外观,但基本的想法是你有一个模型只包含主模型的外键和textarea字段。然后,您可以通过模型formset将这些textareas视为内联。