0

ユーザーが入力してモデルに送信するテキストエリアをいくつか生成する必要があります。ただし、すべて異なる名前にする必要があると思います(正しいですか?)

各テキストエリアにランダムな名前を生成するにはどうすればよいですか? また、モデルは POST リクエストを取得したデータ内でデータを取得するにはどうすればよいですか?

ありがとう!

編集:コンテンツを識別してデータベースに保存する方法として、ランダムに生成された名前を使用することを望んでいました

4

1 に答える 1

1

実際に達成しようとしていることを示していないため、ここで適切な答えを出すのは困難です。フォームに 1000 個のテキスト フィールドを追加することもできますが、それらがモデルのデータと何らかの形で関連付けられていなければ意味がなく、その重要な情報を無視していることになります。

それでも、非常に基本的なレベルでは、次のように追加のテキストエリアをフォームに追加できます。

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)

アップデート

あなたのコメントと、後でテキストエリア フィールドを実際に保存して取得するつもりであるという事実に基づいて、それらの別のモデルを作成し、1 対多の関係を介してメイン モデルにリンクする必要があります。例えば:

class PrimaryModel(models.Model):
    ... # Stuff here

class TextareaModel(models.Model):
    myprimarymodel = models.ForeignKey(PrimaryModel)
    mytextarea = models.TextField()

モデルがどのように見えるかについて何も示していないため、良い例を挙げるのは難しいですが、基本的な考え方は、メイン モデルへの外部キーと textarea フィールドだけを含むモデルがあるということです。次に、これらのテキストエリアをモデル フォームセットを介してインラインとして扱うことができます。

于 2012-06-12T16:59:34.290 に答える