Beispiel #1
0
def post_list(request, category_id=None, tag_id=None):
    tag = None
    category = None

    if tag_id:
        # try……except:如果查询到不存在的对象,需要捕获并处理异常,避免当数据不存在时出现错误
        try:
            # tag 和 post 是多对多的关系,需要先获取tag对象,接着通过对象来获取对应的文章列表
            tag = Tag.objects.get(id=tag_id)
        except tag.DoesNotExist:
            post_list = []
        else:
            post_list = tag.post_set.filter(status=Post.STATUS_NORMAL)
    else:
        # 逻辑如下:先取出状态正常的所有的Post的集合,在从其中过滤出指定id的Post。
        # 而不是先过滤出指定id的Post,再看文章状态是否正常。
        post_list = Post.objects.filter(status=Post.STATUS_NORMAL)
        if category_id:
            try:
                category = Category.objects.get(id=category_id)
            except Category.DoesNotExist:
                category = None
            else:
                post_list = post_list.filter(category_id=category_id)

    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    # 进行数据回传的时候,要注意context中的内容,不要把后面的加上'',成为'post_list'
    return render(request, 'blog/list.html', context=context)
Beispiel #2
0
	def get_context_data(self, **kwargs):
		context = super().get_context_data(**kwargs)
		context.update({
			'sidebars':SideBar.get_all(),
			})
		context.update(Category.get_navs())
		return context
Beispiel #3
0
def post_list(request, category_id=None, tag_id=None):
    tag = None
    category = None

    if tag_id:
        post_list, tag = Post.get_by_tag(tag_id)
    elif category_id:
        post_list, category = Post.get_by_category(category_id)
    else:
        post_list = Post.latest_posts()
        '''
               try:
            tag = Tag.objects.get(id=tag_id)
        except Tag.DoesNotExist:
            post_list = []
        else:
            post_list = tag.post_set.filter(status=Post.STATUS_NORMAL)
    else:
        post_list = Post.objects.filter(status=Post.STATUS_NORMAL)
        if category_id:
            try:
                category = Category.objects.get(id=category_id)
            except Category.DoesNotExist:
                category = None
            else:
                post_list = post_list.filter(category_id=category_id)
        '''
    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/list.html', context=context)
Beispiel #4
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(
         **kwargs)  # TODO(Devin): object -> super() ???
     context.update({
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     return context
Beispiel #5
0
 def get_context_data(self, **kwargs):
     from config.models import SideBar
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     return context
Beispiel #6
0
def post_detail(request, post_id):
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None
    context = {"post": post, "sidebars": SideBar.get_all()}
    context.update(Category.get_navs())
    return render(request, "blog/detail.html", context=context)
Beispiel #7
0
 def get_context_data(self, **kwargs):
     # noinspection PyUnresolvedReferences
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     return context
Beispiel #8
0
 def get_context_data(self, **kwargs):  #用来获取上下文数据并传入模板中
     context = super().get_context_data(
         **kwargs)  #当IndexView继承时,它去继承了ListView的context?
     context.update({
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     return context
Beispiel #9
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars': SideBar.get_all(),
         'keyword': '',  # 此处添加keyword,解决VariableDoesNotExist报错 
     })
     context.update(Category.get_navs())
     return context
Beispiel #10
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(
         **kwargs)  # 获取上下文 这是一个多态的继承 super指的是下面IndexView这个类的继承
     context.update({
         'sidebars': SideBar.get_all(),  # 侧边栏
     })
     context.update(Category.get_navs())  # 分类
     return context
Beispiel #11
0
def post_detail(request, post_id=None, *args, **kwargs):
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None
    context = {'post': post, 'sidebars': SideBar.get_all()}
    context.update(Category.get_navs())
    return render(request, 'detail.html', context=context)
Beispiel #12
0
def post_detail(request, post_id):
    #return HttpResponse('detail')
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None
    context = {'post': post, 'sidebars': SideBar.get_all()}
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context)
Beispiel #13
0
 def get_context_data(self, **kwargs):
     # print(self.kwargs)
     context = super().get_context_data(**kwargs)
     context.update({'sidebar': SideBar.get_all()})
     context.update(
         {'link_list': Link.objects.filter(status=Link.STATUS_NORMAL)})
     context.update(Category.get_navs())
     # print(context)
     return context
Beispiel #14
0
 def get_context_data(self, **kwargs):
     context = super(CommonViewMixin,self).get_context_data(**kwargs)
     context.update({
         'sidebars' : SideBar.get_all()
     })
     context.update(
        Category.get_navs()
     )
     return context
Beispiel #15
0
def post_detail(request, post_id):
    post = Post.objects.filter(id=post_id).first()
    handle_visited(request, post_id)
    context = {
        'post': post,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)
Beispiel #16
0
def post_detail(request, post_id=None):
    """文章详情页"""
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None

    context = {'post': post, 'sidebar_list': SideBar.get_all()}
    return render(request, 'blog/detail.html', locals())
Beispiel #17
0
def post_detail(request, post_id=None):
    try:
        post = Post.objects.get(
            id=post_id)  # get方法只能匹配一条记录,返回字典形式,filter返回一个queryset列表
    except:
        post = None

    context = {'post': post, 'sidebars': SideBar.get_all()}
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)
Beispiel #18
0
 def get_context_data(self, **kwargs):
     # print("demo -----------")
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     # print(context)
     # print("sidebars",context['sidebars'])
     return context
Beispiel #19
0
def post_detail(request, post_id=None):
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None

    context = {
        'post': post,
        'sidebars': SideBar.get_all(),
    }
    return render(request, 'blog/detail.html', context=context)
Beispiel #20
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars':
         SideBar.get_all(),
         'comment_form':
         CommentForm,
         'comment_list':
         Comment.get_by_target(self.request.path),
     })
     context.update(Category.get_navs())
     return context
Beispiel #21
0
def post_detail(request, post_id=None):
    try:
        # 通过id获取指定的Post文章
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None

    context = {
        'post': post,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)
Beispiel #22
0
def post_list(request, category_id=None, tag_id=None):
    tag = None
    category = None

    '''
    if tag_id:
        try :
            tag = Tag.objects.get(id=tag_id)
        except Tag.DoesNotExist:
            post_list = []
        else:
            post_list = tag.post_set.filter(status=Post.STATUS_NORMAL)
    else:
        post_list = Post.objects.filter(status=Post.STATUS_NORMAL)
        if category_id:
            try:
                category = Category.objects.get(id=category_id)
            except Category.DoesNotExist:
                category = None
            else:
                post_list = post_list.Filter(category_id=category_id)

    context = {
        'category':category,
        'tag':tag,
        'post_list':post_list,
    }
    return render(request, 'blog/list.html', context=context)
    '''

    '''
    如果查询到不存在的对象,需要通过try...except...来捕获并处理异常,避免当数据不存在时出现错误
    tag与post是多对多关系,因此需要先获取tag对象,接着通过该对象来获取对应的文章列表。
    '''
    if tag_id:
        post_list, tag = Post.get_by_tag(tag_id)
    elif category_id:
        post_list, category = Post.get_by_category(category_id)
    else:
        post_list = Post.latest_posts()


    from config.models import SideBar
    context = {
        'category':category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/list.html', context=context)
Beispiel #23
0
def post_detail(request, post_id):
    """ function view of post_detail"""
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None

    context = {
        'post': post,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())

    return render(request, 'blog/detail.html', context=context)
Beispiel #24
0
 def get_context_data(self, **kwargs):
     context = super(PostListView, self).get_context_data(**kwargs)
     context.update({
         'category': self.category,
         'tag': self.tag,
         'owner': self.owner,
         'sidebars': SideBar.get_all(),
     })
     context.update(Category.get_navs())
     if self.request.GET.get('search'):
         context.update({
             'keyword': self.request.GET.get('search'),
         })
     return context
Beispiel #25
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context.update({
         'sidebars': SideBar.get_all(),
         'categorys': Category.get_navs(),
         'hot_posts': Post.hot_posts()[:6],
         'new_posts': Post.new_posts()[:6],
         'tags': Tag.latest_posta(),
         'links': Link.show_list(),
         'refer_post': Post.latest_posta()[:6],
         'comment_form': CommentForm(),
         'publish': PostAdminForm(),
     })
     return context
Beispiel #26
0
def post_list(request, category_id=None, tag_id=None):
    tag = None
    category = None
    if tag_id:
        post_list, tag = Post.get_by_tag(tag_id)
    elif category_id:
        post_list, category = Post.get_by_category(category_id)
    else:
        post_list = Post.latest_post()
    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_nav())
    return render(request, 'blog/list.html', context=context)
Beispiel #27
0
def post_detail(request, post_id):
    try:
        # 考虑id不存在的情况
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None
        tag_list = []
    else:
        # 多对多关系中查询出主表中所有的标签
        tag_list = post.tag.all().filter(status=Tag.STATUS_NORMAL)
    context = {
        'post': post,
        'tag_list': tag_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)
Beispiel #28
0
def post_detail(request, post_id=None):
    # return HttpResponse('detail')
    '''
    在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,
    在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,
    并且要对它修改,必须加上global关键字。
    '''
    global Post
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        Post = None
    context = {
        'post': post,
        'sidebars': SideBar.get_all(),
    }
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)
Beispiel #29
0
def tag_view(request, tag_id=None):  # 函数形式
    tag = None
    category = None

    if tag_id:
        post_list, tag = Post.get_by_tag(tag_id)
    else:
        post_list = Post.latest_posts()

    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }
    context.update(
        Category.get_navs())  # 将  Category.get_navs() 返回的字典 添加到 context字典
    return render(request, 'blog/list.html', context=context)
Beispiel #30
0
def post_list(request,
              category_id=None,
              tag_id=None):  #从数据库中拿到所有的文章,然后显示title和摘要
    """content = 'post_list: category_id={category_id}, tag_id ={tag_id}'.format(              #{}与内容之间不能有空格
        category_id=category_id,
        tag_id=tag_id,
    )
    return HttpResponse(content)
    return render(request, 'main/list.html', context={'name':'post_list'})"""

    tag = None
    category = None

    if tag_id:
        """try:
            tag = Tag.objects.get(id=tag_id)    #tag与post是多对多的关系,所以需要先获取tag的对象 ??
        except Tag.DoesNotExist:
            post_list = []
        else:      #try语句里也可以写else,表示没有意外,顺利执行的条件。可以
            post_list = tag.post_set.filter(status=Post.STATUS_NORMAL)    #tag.post  再思考下--可能是多对多不允许吧。下次写的时候注意点"""
        post_list, tag = Post.get_by_tag(tag_id)
    elif category_id:
        """post_list = Post.objects.filter(status=Post.STATUS_NORMAL)
        if category_id:
            try:
                category = Category.objects.get(id=category_id)
            except Post.DoesNotExist:
                category = None
            else:
                post_list = post_list.filter(category_id=category_id)"""
        post_list, category = Post.get_by_category(category_id)
    else:
        post_list = Post.latest_posts()  #显示最新的文章

    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': SideBar.get_all(),
    }

    context.update(Category.get_navs())  #??

    return render(request, 'main/list.html', context=context)