我正在编写一个非常简单的评论应用程序。出于多种原因,我需要在这里编写自己的代码,而不是使用像 Disqus 这样的优秀产品。
所以,我有一个页面,在那个页面上,特殊用户可以发表评论。
除了将页面 ID 添加到表单提交之外,我已经完成了所有工作。
当我尝试使用隐藏的表单字段和 form.cleaned_data 时,我不断收到关键错误。
所以现在我通过 URL 传递 page_id。
我的网址.py
# Submit a comment
url(regex=r'^comment/create/(?P<page_id>\d+)/$',
view=CommentCreate.as_view(),
name='comment_create',
),
还有我的views.py
class CommentCreate(CreateView):
success_url = reverse_lazy('comment_submitted')
model = Comment
template_name='learnd/comment_submitted.html'
form_class = CommentCreateForm
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.page = self.kwargs['page_id']
self.object.save()
return HttpResponseRedirect(self.get_success_url())
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(CommentCreate, self).dispatch(*args, **kwargs)
我得到的错误是:
无法分配“u'1'”:“Comment.page”必须是“Page”实例。
这就是我迷路的地方。
我认为问题在于 kwargs 正在使用 u:1 重新调整字典,但我不知道如何仅访问 1 以传递给我的视图。
欢迎任何帮助。
谢谢。