如何使用html文件而不是django中的modelform保存数据

时间:2013-06-18 07:07:15

标签: python sql database django

我想从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>

我的主题和问题有不同的模型。

如何在视图文件中进行更改。 请帮忙 提前谢谢。

2 个答案:

答案 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.Formforms.ModelForm