我目前正在启动一个项目,其中我在后端使用Django,在API中使用graphql(Graphene),在前端使用VueJS,在{{3 }}可以简化通过VueJS运行graphql查询的过程。
问题是: 我已经能够在Vue组件中执行自定义表单,并运行适当的查询以获取/添加/删除数据。 但是到目前为止,我还无法将Django Forms集成到Vue组件中,我不知道该怎么做。 我对自定义表单可能会感到满意,但是我无法使用Django表单,因为对表单的所有验证都很容易在Django中完成。
任何帮助将不胜感激。
预先感谢
lbris。
答案 0 :(得分:0)
这是this文章中的代码片段,建议您阅读。
<script type="text/javascript">
new Vue({
el: "#starting",
delimiters: ['${', '}'],
data: {
articles: [],
loading: false,
newArticle: {...}
...
}
},
mounted: function() {
},
methods: {
addArticle: function() {
this.loading = true;
this.$http.post("/api/article/",this.newArticle)
.then((response) => {
console.log(response);
})
.catch((err) => {
this.loading = false;
console.log(err);
})
},
...
}
});
</script>
<div id="starting">
<form v-on:submit.prevent="addArticle()">
<div class="modal-body">
<div class="form-group">
<label for="article_heading">Article Heading</label>
<input
type="text"
class="form-control"
id="article_heading"
placeholder="Enter Article Heading"
v-model="newArticle.article_heading"
required="required" >
</div>
<div class="form-group">
<label for="article_body">Article Body</label>
<textarea
class="form-control"
id="article_body"
placeholder="Enter Article Body"
v-model="newArticle.article_body"
required="required"
rows="3"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</form>
</div>
答案 1 :(得分:0)
有了它,您可以拥有类似的东西:
def myview(request):
form = MyForm()
return render(request, 'mytemplate.html', {'form': form})
{% load widget_tweaks %}
<form v-on:submit-prevent="myaction()">
{% render_field form.field v-model="myattr" %}
</form>
它将完美运行