python - Django 表单错误 - 该选项不是可用选项之一
问题描述
我正在尝试在用户之间创建一个自定义消息传递平台。出于某种原因,它说我的表单在我提交时无效,当我使用 print(messageform.errors) 打印错误时,我得到:
<ul class="errorlist"><li>receiver<ul class="errorlist"><li>Select a valid choice. That choice is not one of the available choices.</li></ul></li></ul>
这很奇怪,因为我不相信我在表单的任何地方都使用了下拉菜单。有谁知道为什么会这样?
表格.py
class MessageForm(forms.ModelForm):
class Meta:
model = Message
fields = ['text', 'receiver']
.html 文件
<form action="" method="post">
{% csrf_token %}
<input type="text" name="text" value="" />
<label for="text">Enter your message here</label><br/>
<input type="text" name="receiver" value="" />
<label for="receiver">id of receiver</label><br/>
<input type="submit" value="Send" />
</form>
模型.py
class Message(models.Model):
text = models.TextField(max_length=10000, blank=True)
sender = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
null = True,
related_name="sender"
)
receiver = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
null = True,
related_name="receiver"
)
视图.py
usermodel = get_user_model()
if request.method == "POST" and not signupform.is_valid():
messageform = MessageForm(request.POST)
print(messageform.errors)
if messageform.is_valid():
receiverid = messageform.cleaned_data['receiver']
newmessage = messageform.save(commit=False)
newmessage.sender = request.user
newmessage.receiver = usermodel.objects.filter(username=receiverid)
newmessage.text = messageform.cleaned_data['text']
new_profile.save()
return HttpResponseRedirect('/profile/')
解决方案
推荐阅读
- kubernetes - 使用“无法找到名为 fluentd-gcp 的容器”记录垃圾邮件
- javascript - 如何从 Google Classroom courseWork API 访问具有未指定 workType 值的课程作业?
- xcode11.4 - 在 Xcode 11.4 上启用代码覆盖时如何解决单元测试崩溃
- tensorflow - 具有多个输出的网络,如何计算损失?
- python - 多条件行删除
- python - 在 Raspberry Pi 上从源代码编译 TensorFlow 时出现 Docker 错误
- python-3.x - SELENIUM add_cookie 偶尔会同时失败
- javascript - 实现 Lodash Invert
- snowflake-cloud-data-platform - 无法在雪花中描述。没有活动数据库
- javascript - 在一个 JS 表中显示 html 数据