好的,所以我正在尝试在我的createAnswer视图中包含相应的注释当前createAnswer页面的url包含pk Ok和正确的注释,所以我需要通过url中的id获取注释。
我的通用CreateView如下所示:
class createAnswer(CreateView):
model = Answer
fields = ['content']
def getComment(self, request):
???
comment = getComment()
def get_success_url(self):
this_path = self.request.get_full_path()
path_list = this_path.split('/')
def get_comment_id(self):
for i in range(len(path_list)):
if path_list[i].isdigit():
return path_list[i]
return '/blogcontact/comment/'+ get_comment_id(self)
def form_valid(self,form):
this_path = self.request.get_full_path()
path_list = this_path.split('/')
def get_comment_id(self):
for i in range(len(path_list)):
if path_list[i].isdigit():
return path_list[i]
form.instance.author = self.request.user
form.instance.comment = Comment.objects.get(id=get_comment_id(self))
return super().form_valid(form)
我的网址.py看起来像这样:
from django.urls import path
from . import views
from .views import createAnswer
urlpatterns = [
path('contact/comment/<int:pk>/newanswer', createAnswer.as_view(),
name='answer-create')
]<br>
我想把Comment对象保存在一个变量中,这样我就可以在html模板中使用它,比如{Comment}
我认为您混淆了函数视图和基于类的视图(CBV),而且您从不导入请求,它只是视图接收的一个参数。你知道吗
在函数视图中,可以执行以下操作:
对于CBV,每个方法都是一个函数:
编辑:要访问基于类的视图中的url参数,请使用自我.kwargs,这样您就可以通过自我.kwargs['pk']。现在您只需要获取注释并将其添加到上下文数据中:
相关问题 更多 >
编程相关推荐