模型
class Message(models.Model):
sender = models.ForeignKey(User, related_name="sender", on_delete=models.CASCADE)
reciever = models.ForeignKey(User, related_name="reciever", on_delete=models.CASCADE)
title = models.CharField(max_length=50)
我很确定我有正确的主意,那就是首先创建一个按钮:
<a href="{% url 'send-message-to' profile.user.id %}" class="btn btn-primary">Send a message</a>
然后我将个人资料ID传递给我的CreateView,然后使用收到的pk查询用户:
class MessageCreateView(CreateView):
model = Message
fields = ['title', 'msg_content']
def form_valid(self, form):
form.instance.sender = self.request.user
form.instance.receiver = User.objects.get(id=self.kwargs.get('pk'))
return super().form_valid(form)
但是它没有按预期工作。我收到错误消息
IntegrityError at /messages/create/1/
null value in column "reciever_id" violates not-null constraint
由于某种原因,我编写的代码未填写接收者ID。 form.instance.receiver = User.objects.get(id=self.kwargs.get('pk'))
如何获取我的表单以在我的表单中自动设置收件人(to_user)?
现在发生的是,当我尝试创建一条消息时,我得到了所有不需要的可用用户的下拉列表。