2017-05-05 1 views
0

再テストフォームがサブミットされると、再テストモデルのブールフィールドis_repをtrueに設定します。 今すぐ再テストモデルに追加されます。 リクエストが送信されたときに他のイベントをトリガーしたいからです。は、djangoでサブミットされたときにブール値を設定します

私のコード

models.py

class Retest(models.Model): 

semester = models.ForeignKey(Semester) 
dept = models.ForeignKey(Departement) 
batch = models.ForeignKey(Batch) 
date = models.DateField(default=0) 
subject = models.ForeignKey(Subject) 
name = models.CharField(max_length=50) 
admnno = models.CharField(max_length=50) 
reason = models.CharField(max_length=50) 
proof = models.CharField(max_length=200) 
is_hod = models.BooleanField(default=False) 
is_principal = models.BooleanField(default=False) 
notify = models.BooleanField(default=False) 
is_sure = models.BooleanField(default=False) 
is_rep = models.BooleanField(default=False) 

def get_absolute_url(self): 
    return reverse('retest:retestform') 
def __str__(self): 
      return self.name 

urls.py

url(r'^retest/retestform/$',login_required(views.RetestCreate.as_view()), name='retestform') 

views.py

class RetestCreate(CreateView): 
model = Retest 
fields = ['semester', 'dept', 'batch', 'date', 'subject', 'name', 'admnno', 'reason', 'proof', 'is_sure'] 

テンプレート

<form class="form_horizontal" action="" method="post" enctype="multipart/form-data" > 
     {% csrf_token %} 
     {% include 'retest/form-template.html' %} 
     <div class="form-group"> 
      <div class="col-sm-offset-2 col-sm-10"> 
      <button type="submit" class="btn btn-success">Submit</button> 

      </div> 
     </div> 
     </form> 
+0

あなたの問題は正確にはわかりません。私はあなたがform_valid()を見たいと思っています。 https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-editing/ – Bott0610

+0

このリクエストが提出された場合、それはデータベースに格納されます。それは他のタイプのユーザーによって表示されます私はあなたのフォームを表示できますか?Bott0610 – najmath

+0

あなたのフォームを表示できますか? – Algorithmatic

答えて

0

form_template

{% for field in form %} 

    <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10"> 
    <span class="text-danger small">{{ field.errors }} </span> 
    </div> 
    <label class="control-label col-sm-2">{{ field.label_tag }} </label> 
    <div class ="col-sm-12"> 
    <div class="form-control"> 
    {{ field }}</div></div> 
    </div> 


{% endfor %} 
0

あなたがtrueにブールフィールドを設定したい場合は、フォームが送信されたときに、あなただけのビューでそれを処理する必要があります。

フォームを送信してからデータベースに保存する前に、is_rep = trueを設定するだけです。 is_repは、モデル内にありますが、フォームでは使用されていないフィールドです。 それを変更したい場合は、手動でビューを作成する必要があります。ビューとフォームのワークフローを理解するには、汎用ビューの代わりにベースビューを使用してください。

私はこのようなものを使用してお勧めします:

class RetestView(View): 

    def get(self, request, *args, **kwargs): 
     .............. 
     return render(request, self.template, {"some_context"} 

    def post(self, request, *args, **kwargs): 
     form_data = your_form(request.POST) 
     if form_data.is_valid(): 
      new_object = form_data.save(commit=False) 
      new_object.is_rep = True 
      new_object.save() 
     return render(request, self.template, {"some...context"}) 

は、あなたが探していたものだホープ..!

+0

あなたの投稿を編集して詳細を更新することができます。自分の質問に対する回答を投稿する必要はありません。 – zaidfazil

関連する問題