将数据从Django表单插入表中

时间:2018-06-12 07:26:46

标签: django-forms django-views

我想将数据(用户提供的分数)从表单插入到我的数据库中。

这是我的模特:

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;
&#13;
&#13;

我的问题:Django是否会从其他表中获取字段uservideo,假设它们是ForeignKeys?

我试图让它工作,但即使用户给出分数,表格分数也是空的。在用户给出分数后,他不会被重定向到索引页面。

提前致谢。

0 个答案:

没有答案