2011-08-02 5 views
-1

私は、特定のページにユーザーが投稿したフォームを持っていると思います。私のモデルはこのようなものですDjangoのフォームのバージョン1.3

class Ask(models.Model): 
    name = models.CharField(max_length=500) 
    designation = models.CharField(max_length=200, blank=True) 
    email = models.EmailField() 
    phone = models.CharField(max_length=20, blank=True) 
    avatar = models.ImageField(upload_to="/ask/users/avaters", blank=True) 
    question = models.CharField(max_length= 1024) 
    ques_time = models.DateField() 
    answere = models.TextField() 
    ans_time = models.DateField() 
    display = models.BooleanField() 
    asker_ip = models.CharField(max_length=100) 

ユーザーから、私は名前、指定、電子メール、電話、avaterおよび質問を受け取ります。 ques_timeとans_timeはその時間に自動的に更新されます。回答は、django管理者のサイト所有者から入力されます。 asker_ipはブラウザのIPアドレスから自動的に受信されます。

私は、テンプレートセクションの基本的なテンプレートを持っています。フォームを送信したユーザーが、そのページにリダイレクトされますが、フォーム部分には成功メッセージが表示されます。私はそのavaterイメージをアップロードしたいと思う。

は今どのように私は、このトピックに開始する必要があります。あなたが書くことを始めるか、私に助けになるURLを送る方法を記述することができます。

+0

を逃した場合、私はあなたがしているかわからないんだけどあなたが次のことを望んでいるように聞こえます:ユーザーがフォームを提出すると、フォームは送信されますが、フォームの代わりに成功メッセージが表示されます。そうですか? – Phil

+0

はい、また私は、[モデルのフォーム]に非常に良いドキュメント(https://docs.djangoproject.com/en/1.3/topics/formsで間違ったデータベース – themunna

+0

何でユーザーに送信されたデータを入力する方法を知っておく必要があります/ modelforms /)? –

答えて

2

あなたはこのような何かを行うことができます。彼はその中のすべての送信された値でフォームオブジェクトを作成し、POSTがあるかどう(そう、ユーザーがフォームを提出):

  • フォームlike thisを検証するビューを作成します、あなたは操作することができます。 POSTリクエストがない場合、テンプレートの空のフォームが作成されます。どちらの方法でも、ビューはテンプレートにフォームを返します。フォームが提出されたか、それが空であればTrue/Falseに設定された別の変数を使用するかもしれません。テンプレートで
  • 、あなたのようなもので、形が存在する場合(変数と)テンプレートタグをチェックしたりすることはできません。

    {%form_sent%であれば}

    ブラボー!あなたは何か

    {%他%} {{ form.as_p}} {%endifの%}このような

何かを提出しました。これはあなたの質問の最初の部分をカバーする必要があります。 Thisは、アップロードするファイルを探しています。非常に慎重に、このページを読んで、あなたは何か、アップロードは行くことはありません(つまり、私は、フォームに正しいMIMEタイプを含めることを忘れないでくださいことはありません、と私は常にエラーが発生します)

+0

です。私は、フォームが提出されたときにデータを保存したいだけです。ですから、私はform.pyファイルを作成します。ビューでフォームを検証します。このフォームデータを保存する場所はどこですか?私はあなたが与えた最初のリンクを読む。それは私の頭の上に行く。 :)私はどのようにユーザー/フォームの提出者のIPを得る別のもの? – themunna

+0

ビューで保存を実行すると、すべてがバックエンドに保存されます。例:フォームには有効なデータがあり、データをAskオブジェクトに格納してから、ビュー(データを操作する場所)からsave()メソッドを呼び出してオブジェクトをdbに格納します。最初のリンクでチェックすると、そのブロック内のis_valid()メソッド呼び出しの後に保存を行うことができます。 –

関連する問題