前提・実現したいこと
djangoを用いてウェブサイトを作成しています。
次のフォームを作成したのですが、フォームを入力し、登録ボタンを押した時、一切反応しません。
どこを修正すればよいかご教授ください。
views.pyの内容
python
1from django.shortcuts import render 2from .models import question 3from .forms import q_add_form 4 5from django.contrib.auth.decorators import login_required 6 7 8@login_required 9def q_add(request): 10 11 if request.method == "POST": #フォームの入力を終えてすべてのフォームのデータともにviewに戻るとき 12 form = q_add_form(request.POST) #ProfileFormを作る(?) 13 14 if form.is_valid(): #フォームの値が正しい時 15 question = form.save(commit=False) #フォームを保存 ※commit=Falseでまだ保存しない 16 question.user = request.user 17 question.save() 18 return render(request, 'top/index.html', {}) 19 20 else: #初回アクセス時…空のフォームがほしいとき 21 form = q_add_form() 22 23 return render(request, 'qa/q_add.html', {"form":form} ) 24
models.pyの内容
python
1 2from django.contrib.auth.models import User 3from django.db import models 4 5from django.conf import settings 6 7class question(models.Model): 8 urltype_choice = ( 9 ('hoge1','hogehoge1'), 10 ('hoge2','hogehoge2') 11 ) 12 13 title = models.CharField('タイトル', max_length=100) 14 url = models.CharField('URL', max_length=1s00) 15 urltype = models.CharField('タイプ', choices = urltype_choice, max_length=100) 16 text = models.TextField('本文') 17 user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE) 18 19 def __str__(self): 20 return self.name 21 22
forms.pyの内容
python
1from django import forms 2from django.contrib.auth.forms import UserCreationForm 3from .models import question 4 5 6 7class q_add_form (forms.ModelForm): 8 投稿ルールに同意する = forms.BooleanField() 9 10 class Meta: 11 model = question 12 fields = ( 13 'title', 'url', 'urltype', 'text' 14 ) 15 16 #bootstrapのパーツを使用 https://torina.top/detail/277/ 17 def __init__(self, *args, **kwargs): 18 super().__init__(*args, **kwargs) 19 for field in self.fields.values(): 20 field.widget.attrs["class"] = "form-control" 21
q_add.htmlの内容
html
1{% extends 'base.html' %} 2{% load bootstrap_toolkit %} 3 4{% block title %} 5質問フォーム 6{% endblock title %} 7 8 9{% block content %} 10 <h1>質問フォーム</h1> 11 12 {% csrf_token %} 13 <div class="well"> 14 {{ form.as_p }} <!--TODO! as_bootstrapに対応--> 15 <button type="submit" class="btn btn-primary">投稿</button> 16 </div> 17 18{% endblock content %}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/26 21:15