我想将数据(用户提供的分数)从表单插入到我的数据库中。
这是我的模特:
class Score(models.Model):
scoring_choices = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
(5, '5'),
)
user = models.ForeignKey(User, default=1, on_delete=models.CASCADE)
video = models.ForeignKey(Video, on_delete=models.CASCADE, default=00)
score = models.IntegerField(choices=scoring_choices)
def __str__(self):
return str(self.video) + ' - ' + str(self.score)
我的forms.py
class ScoreForm(forms.ModelForm):
class Meta:
model = Score
fields = ['score']
这是我的观点:
def new_score(request, video_id):
video = get_object_or_404(Video, pk=video_id)
form = ScoreForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('dash_interface:index'))
return render(request, 'dash_interface/new_score.html', {'form': ScoreForm(), 'video': video})
我创建的HTML:
<div class="panel panel-default">
<div class="panel-body">
<h3>Add your score</h3>
<form action="{% url 'dash_interface:watching' video.id %}" method="post">
{% csrf_token %}
{{ form}}
<input type="submit" value="Submit">
</form>
</div>
</div>
&#13;
我的问题:Django是否会从其他表中获取字段user
和video
,假设它们是ForeignKeys?
我试图让它工作,但即使用户给出分数,表格分数也是空的。在用户给出分数后,他不会被重定向到索引页面。
提前致谢。