Python Django表单错误-该选项不是可用选项之一

Python Django表单错误-该选项不是可用选项之一,python,django,Python,Django,我正在尝试在用户之间创建一个自定义消息传递平台。出于某种原因,当我提交表单时,它会说我的表单无效,当我用print(messageform.errors)打印错误时,我得到: html文件 <form action="" method="post"> {% csrf_token %} <input type="text" name="text" value="" /> <label for="text">Enter your mes

我正在尝试在用户之间创建一个自定义消息传递平台。出于某种原因,当我提交表单时,它会说我的表单无效,当我用print(messageform.errors)打印错误时,我得到:

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>
views.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/')

这是django中
ForeignKey
字段的默认输入类型。您可能希望在表单中添加一个新的
receiver
字段作为文本输入,然后在视图中使用它。否则,您可以呈现表单字段中的HTML输入,该字段将显示为下拉列表。@Rohan我为receiver添加了表单字段(charfield),我得到的错误是—“Message.receiver”必须是“User”实例。“查看myviews.py,我认为我已经在呈现表单字段中的HTML输入了。我正在将newmessage.receiver设置为usermodel(我的自定义用户模型,称为User)对象,所以我不确定它为什么会抛出该错误
<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>
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"
                    )
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/')