2017-07-26 18 views
1

私はappのようなGoogleSurveyフォームを開発しており、フロントエンドユーザーにアンケートを作成させる必要があります。私は少しのガイドラインが必要です。私が必要とするのは、Django-adminのようなフォームを生成し、同じフォームを他のエンドユーザーからデータを収集するためにサイトで使用できるビューを構築することです。フロントエンドからDjangoアンケートフォームを作成

お知らせください。

+0

ここで答えるには広すぎます。 –

+0

私にそれを理解させるヒントを教えてください。または、GitHubのスニペットが素晴らしいでしょう。 –

+0

3つのオプションで1つの質問のようにフォームを生成する方法を選択し、次に5つのオプションで2番目の質問をしたい場合は、 –

答えて

1

これは広範な質問のようなものですが、できる限り多くの詳細をカバーしようとします。 フォームビルダークラスには質問が含まれ、form_idはフォームのすべての質問を取得します。したがって、id = 1のフォームのすべての質問を取得したい場合は、簡単にフィルタリングできます。代わりに、フォームIDと作成者とフォームビルダーのみを含むフォームの追跡を保持するためのテーブルを作成することがあります。

データベースに保存:回答を保存するための方法

class FormBuilder(models.Model): 
    form_creator = models.ForeignKey(User) 
    form_id = models.AutoIncrementField() 
    question_text = models.TextField() 
    option_types = models.CharField(max_length=30) # drop down or text fields or some other 
    options = models.TextField(null=True) # this can be null for text field like answers and for multiple options it can be stored as comma seperated field 
    created_at = models.DateTimeField() 

class FormResponses(models.Model): 
    form_id = models.ForeignKey(FormBuilder) 
    responses = models.TextField(null=True) # this follows the same analogies as options in FormBuilder 
    created_at = models.DateTimeField() 

ビュー:ビューのために覚えておくべき事柄の

カップル:

  • をあなたがそのオプションが実際に存在することを常に確認するユーザによって選択される。
  • ユーザーは複数のアンケートに記入しないでください。この機能も必要な場合は、formbuilderにフィールドを1つ追加して確認してください。

例:

例の質問は次のようになります。

Q.これはどうですか? #question text Ans。フォームビルダーモデル でoption_type = textとoptions = nullがうまくいっています。それが選択基準の質問だった場合、 option_type=choicesoptions=good, excellent, betterカンマ区切りの文字列としてリストされています。

回答モデルでは、応答はテキストフィールドなので、回答を入れることができます。

これは疑似コードに似ていますので、構文エラーに直面する可能性がありますが、これはあなたに要点を与えます。 Thisは、ゼロからソリューションを計画していない場合に役立ちます。

+0

私はこの方法を試して、ユーザーは選択肢を選択できます。しかし、ユーザーが質問にフィールドに何かを入力する必要があるとき、私はそれを動作させることができませんでした。 –

+0

これは、オプションタイプのフィールドが救助される場所です。このフィールドは、テキストフィールドの回答とオプションベースの回答を区別します。しかし、これはフロントエンド側でより多くの作業を行うでしょう。 @ShaziaNusrat –

+0

あなたは私にあなたの与えたモデルのフォーム例を親切に教えてくれますか?私はそれを試し、それがうまくいくかどうか質問します。ありがとうございました –

関連する問題