メッセージ、作成者、部屋、タイムスタンプの4つのフィールドを持つモデルフォームがあります。タイムスタンプはauto_nowに設定されているため、フォームには表示されません。AuthorとRoomはどちらもForeignkeysであり、フォームに自動的に入力する必要があります。作成者はrequest.userに設定され、部屋はURLによって表示に渡されます:/ add_message / {{room.id}} /'クライアントが入力したいフィールドはメッセージだけです。これまでのビューは次のとおりですが、これを実現する方法がわかりません。
@login_required(login_url="/login/")
def add_message(request, room_id):
p = get_object_or_404(Room, pk=room_id)
m = Message.objects.all().order_by('-timestamp')
form = MessageForm(request.POST or None)
if form.is_valid():
cmodel = form.save()
cmodel.save()
return HttpResponseRedirect(reverse('chat.views.add_message', args=(p.id,)))
return render_to_response('chatroom.html', {'contact_form': form, 'room':p, 'latest_message_list': m}, context_instance=RequestContext(request))