python类中没有属性_python-类型对象“ Post”没有属性“ published...

我正在开发一个应用程序,并且试图显示基于标签的相关文章.我一切正常,但是当我在浏览器中加载详细信息视图时,出现错误,提示类型对象“ Post”没有属性“ published”,我已在下面发布了我的代码.

模型:

class Post(models.Model):

"""docstring for Post."""

STATUS_CHOICES = (

('drafts', 'Draft'),

('published', 'Published'), )

user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1) #blank=True, null=True)#default=1

title = models.CharField(max_length = 120)

slug = models.SlugField(unique= True)

draft = models.BooleanField(default = False)

publish = models.DateField(auto_now=False, auto_now_add=False)

content = models.TextField()

tags = TaggableManager()

status = models.CharField(max_length=10,choices=STATUS_CHOICES, default='published')

updated = models.DateTimeField(auto_now=True, auto_now_add=False)

timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)

视图:

def view(request, slug =None):

instance = get_object_or_404(Post, slug =slug)

if instance.draft or instance.publish > timezone.now().date():

redirect(index)

#content_type = ContentType.objects.get_for_model(Post)

#obj_id = instance.id

initial_data = {

"content_type": instance.get_content_type,

"object_id": instance.id

}

form = CommentForm(request.POST or None, initial=initial_data)

if form.is_valid():

#print (form.cleaned_data)

c_type = form.cleaned_data.get("content_type")

content_type = ContentType.objects.get(model= c_type)

obj_id = form.cleaned_data.get("object_id")

c_content =form.cleaned_data.get("content")

parent_obj = None

try:

parent_id = int(request.POST.get("parent_id"))

except Exception as e:

parent_id = None

if parent_id:

parent_query = Comment.objects.filter(parent__id= parent_id)

if parent_query.exists():

parent_obj = parent_query.first()

new_comment, created = Comment.objects.get_or_create(

user = request.user,

content_type = content_type,

object_id = obj_id,

content = c_content,

parent = parent_obj,

)

return HttpResponseRedirect(new_comment.content_object.get_absolute_url())

comments = instance.comments

# List of similar posts

post_tags_ids = instance.tags.values_list('id', flat=True)

similar_posts = Post.published.filter(tags__in=post_tags_ids).exclude(id=instance.id)

similar_posts = similar_posts.annotate(same_tags=Count('tags')).order_by('-same_tags','-publish')[:4]

context = {

#"objects": query,

"instance": instance,

"comments": comments,

"form": form,

'similar_posts': similar_posts

}

template = 'view.html'

return render(request,template,context)

附加代码将应要求添加.提前致谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值