django - django 浏览次数显示“NoneType”对象没有属性“comment_set”
问题描述
'''views.py,
我正在学习 django / python,但我遇到了一个问题。显示一些错误,例如“NoneType”对象没有属性“comment_set”,我如何解决问题。这是查看次数的代码。
'''
class PostDetail(FormMixin, DetailView):
model = BlogSlider
template_name = "blogdetails.html"
form_class = CommentForm
context_object_name = 'detail'
def get_success_url(self):
return reverse_lazy('blog-details', kwargs={
'slug':self.object.slug
})
def get_context_data(self, **kwargs):
context = super(PostDetail, self).get_context_data(**kwargs)
context['commenting'] = self.object.comment_set.all()
context['form'] = self.get_form()
context['own'] = BlogSlider.objects.all().exclude(user=self.request.user)[:4]
return context
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.instance.user = self.request.user
form.instance.post = self.get_object()
form.save()
return super(PostDetail, self).form_valid(form)
def get_object(self):
client = self.request.META['REMOTE_ADDR']
ip = IP()
print(client)
print(IP)
blogview = super(PostDetail, self).get_object()
print(str(blogview.ip.all()))
if client not in str(blogview.ip.all()):
ip.ip_list = client
ip.save()
blogview.ip.add(ip)
blogview.views_count += 1
blogview.save()
return blogview
解决方案
换行
context['commenting'] = self.object.comment_set.all()
和
context['commenting'] = self.object.comment_set.all() if self.object else []
您正在尝试阅读所有评论,即使对象设置为None
推荐阅读
- java - Spring Boot - 如何为“java.time.LocalDateTime”类创建自定义序列化
- html - Html 分数的特殊字符
- python-3.x - GraphLab 创建安装错误:没有为 graphlab-create>=2.1 找到匹配的发行版
- angular - 在 Angular 中解析远程资源
- node.js - 在用户进行身份验证时安全地检索用户数据
- exception - perl6 在自动激活中捕获非致命异常
- css - 在 Bootstrap 4 中创建一个仅在插入符号单击时打开的下拉按钮
- c# - EF Core 2.1 对自有类型的更改是什么?
- r - 与 YAML 序列化程序相关的 pkgdown build_site() 出错
- android - 使用 JavaScript API 在本机移动应用程序中打开包含路线和航点数据的 Google 地图