djangoでvueのvue-star-ratingを実装し保存
Q&A
Closed
解決したいこと
djangoでアプリを作成しています。
その中でvueのvue-star-ratingを導入し表示に成功しました。
しかし、取得したデータ(評価数)を保存する方法がわかりません。
vue
<body>
<div class="main">
<div class="container">
<h1>{{title}}</h1>
<div id="app">
<h2>評価</h2>
<!--ここのstar-ratingで表示-->
<star-rating :increment="0.5" :star-size="35"></star-rating>
</div>
<table>
<form action="{% url 'review' movie %}" method="post">
{% csrf_token %}
{{form}}
<tr>
<td></td>
<td><input type="submit" value="送信"></td>
</tr>
</form>
</table>
</div>
</div>
<script>
Vue.component('star-rating', VueStarRating.default)
new Vue({
el: '#app',
methods: {
setRating: function (rating) {
this.rating = "You have Selected: " + rating + " stars";
},
showCurrentRating: function (rating) {
this.currentRating = (rating === 0) ? this.currentSelectedRating : "Click to select " + rating + " stars"
},
setCurrentSelectedRating: function (rating) {
this.currentSelectedRating = "You have Selected: " + rating + " stars";
}
},
data: {
rating: "No Rating Selected",
currentRating: "No Rating",
currentSelectedRating: "No Current Rating",
boundRating: 3,
}
});
</script>
</body>
今回のstar-rating以外のデータ(formの入力値)はpythonでpostを受け取った際に保存されるようになっています。
ですので、star-ratingで得たデータ(評価数)も合わせてpythonの方にpost送信したいと思っていますが、そもそもデータがどこにあるのかわかりません。
python
@login_required(login_url='/movieist/accounts/login/')
def review(request, movie_id):
res = api.get_movie(movie_id)
title = res['title']
if (request.method == 'POST'):
obj = Review()
form = ReviewForm(request.POST, instance=obj)
if form.is_valid():
review = form.save(commit=False)
review.owner = request.user
review.movie_id = movie_id
review.save()
return redirect(to='/movieist/movieselect')
params = {
'form': ReviewForm(),
'title': title,
'movie': movie_id
}
return render(request, 'movieist/review.vue', params)
<表示画面>
表示画面の3の部分を保存したいです。
至らないところも多々あるかと思いますがよろしくお願いします。
0