Django表单域不会显示在我的临时文件中

2024-04-19 07:43:21 发布

您现在位置:Python中文网/ 问答频道 /正文

表单字段不会显示在浏览器中。只有提交按钮出现。你知道吗

视图.py代码:

def vote(request, pk):
    # check if request is post
    if request.method == 'POST':
        # create a form and populate it with data from request
        form = forms.Vote(request.POST)
        if form.is_valid():
            fact = Fact.objects.get(pk=pk)
            fact.votes += int(form.cleaned_data['vote'])
            fact.save()
            return HttpResponseRedirect(reverse(
                'facts:detail',
                args=(pk,)
            ))
    else:
        form = forms.Vote()
    return render(request, 'facts/fact_detail.html', {'form': form})

模板(事实_详细信息.html)代码:

<form method='POST'>
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="vote" />
</form>

窗体类(表单.py)代码:

VOTE_CHOICES = [
    (1, 'upvote'),
    (0, 'downvote')
]


class Vote(forms.Form):
    vote = forms.ChoiceField(choices=VOTE_CHOICES,  widget=forms.RadioSelect())

Tags: 代码pyformdatareturnifisrequest
2条回答

我建议检查django文档中的通用编辑视图,我认为它有解决方案 [https://docs.djangoproject.com/en/1.11/ref/class-based-views/generic-editing/#createview][1]

视图.py对于vote方法,在将表单变量作为参数传递之前,对其进行局部初始化。你知道吗

def vote(request, pk):
     form=""
    //rest of the code//
       return render(request, 'facts/fact_detail.html', {'form': form})

相关问题 更多 >