python - is_valid() 函数根据表单中的 IntergerField 的回溯返回 false
问题描述
is_valid() 函数根据表单中的 IntergerField 的回溯返回 false。我可能错过了 is_valid() 代码行中的某些内容。任何输入表示赞赏。
追溯
[27/Apr/2020 02:23:07] "GET / HTTP/1.1" 200 10413
5
<bound method BaseForm.is_valid of <IdForm bound=True, valid=Unknown, fields=(id)>>
<tr><th><label for="id_id">Song ID:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="id" required id="id_id"></td></tr>
<tr><th><label for="id_id">Song ID:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="id" required id="id_id"></td></tr>
<bound method BaseForm.is_valid of <IdForm bound=False, valid=Unknown, fields=(id)>>
[27/Apr/2020 02:23:09] "POST /playlist/add/5/ HTTP/1.1" 200 4406
表格.py
class IdForm(forms.Form):
id = forms.CharField(label='Song ID', required=True)
模板
<form action="{% url 'playlist_add' P_id=p.id %}" method="POST" enctype="multipart/form-data" value="{{request.post.id}}">
{% csrf_token %}
{%for field in form%}
{{field.errors}}
{{field}}
{%endfor%}
<button type="submit">Add Song</button>
</form>
视图.py
class PlaylistAddFormFunction(View):
form_class = IdForm #determine fields
template = 'homepage_list.html'
def get(self, request):
form = self.form_class(None)
print('soo')
return render(request, self.template, {'form':form})
@method_decorator(login_required)
def post(self, request, P_id):
print(P_id)
form = IdForm(request.POST)
print(form.is_valid)
print(form)
if form.is_valid():
print('xoo')
id = form.cleaned_data['id']
song = Song.objects.get(id=id)
playlist, created = Playlist.objects.get_or_create(id=P_id)
playlist.song.add(song)
return redirect('home')
else:
print(form)
form = self.form_class(None)
print(form.is_valid)
return render(request, self.template, {'form':form})
解决方案
我解决了这个问题。我在一个模板上创建了 2 个表单。Django 将 2 个表单混合在一起,并将提交按钮从另一个表单呈现到当前表单。因此,我在激活 POST 方法时运行了错误的功能。
推荐阅读
- ios - 如何在 iOS 上构建一个可用的现有反应原生应用程序?
- pine-script - 将 Pine 脚本 v1 或 v2 转换为 v4
- python - 具有多处理功能的 Python 客户端/服务器
- amazon-s3 - s3fs:如何使用 IMDS v2 在代理后面的 AWS EC2 实例上挂载 S3 存储桶
- spring-boot - 在 Spring Boot 中将更改日志文件添加到类路径
- android - 更改根路径后如何重建android源代码(AOSP)
- docker - 如何缓存和重用在构建脚本期间下载的二进制文件?
- javascript - 在 Oracle BI EE 中使用 Plotly 下载选项
- python - 如何应用类型检查?
- powershell - 在多个服务器上并行运行 powershell 脚本