我想从html表单而不是django中的modelForm中保存数据。我正在使用MySQL数据库。
create.html上
<form action="QACreate/qa_create/" method="post" id="createform">
{% csrf_token %}
<label>Topic :</label>
<input type="text" name="topic"/><br /><br />
<label>Description :</label>
<textarea name="decsription"> </textarea> <br /><br />
<label>Topic type :</label>
<select>
<option value="Descriptive"> Descriptive</option>
<option value="Objective">Objective</option>
</select> <br /><br />
<label>Question :</label>
<textarea name="question"> </textarea><br /><br />
<label>Answer :</label>
<textarea name="answer"> </textarea><br /><br />
<a href="#">Add another question</a><br/><br />
<label>Tags :</label>
<input type="text" name="tags"/><br /><br />
<input type="submit" value="Submit" name="submit" />
<input type="reset" value="Reset" name="reset"/>
</form>
我的主题和问题有不同的模型。
如何在视图文件中进行更改。 请帮忙 提前谢谢。
答案 0 :(得分:0)
您应该创建一个处理POST数据的视图,验证它并(可选地)创建新的模型对象。
快速举例:
def qa_create(request):
if request.method == 'POST':
# process the form
data = request.POST
topic = data.get('topic')
#... rest of the form fields
#Assuiming you have model specified, lets name it QA_Model
#remember to assign rest of the fields
qa_object = QA_Model(topic=topic).save()
#Object has been saved to database
else:
# display template with HTML code
答案 1 :(得分:0)
在您的视图中,从Post
获取提交的数据并保存在模型中:
def myView(request):
if request.method == 'POST':
question = request.POST.get('question')
answer = request.POST.get('answer')
# some other fields
# do validation
# if everything ok save in model
MyModel.objects.create(question=question, answer=answer, )
但我强烈建议您使用Django forms.Form
或forms.ModelForm
。