3

ユーザーの 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 のフィールドに入力できる (オブジェクトを追加するための) 1 つのページをユーザーに提供したいと思います。選択されました。これは、選択された content_type と MainModels の適切なオブジェクトが作成される 1 つの「送信」ボタンでビューに送信する必要があります。いくつかの ajax/jquery を使用して、選択した content_type のフィールドで初期フォームを「拡張」することを考えていますが、それを正しく行う方法に関する他の提案を歓迎します。

4

1 に答える 1