示例#1
0
    def post(self, request):
        form = forms.PubNewsForm(request.POST)
        if form.is_valid():

            title = form.cleaned_data.get('title')
            desc = form.cleaned_data.get('desc')
            thumbnail_url = form.cleaned_data.get('thumbnail_url')
            content = form.cleaned_data.get("content")

            tag_id = form.cleaned_data.get('tag_id')
            newstag = NewsTag.objects.filter(id=tag_id).all()
            if newstag:
                new = NewsPub(title=title,
                              desc=desc,
                              thumbnail=thumbnail_url,
                              content=content,
                              tag=newstag[0],
                              auth=request.user)
                new.save()
                # print(newstag)
                return json_status.result(message='发布成功!')
            else:
                return json_status.params_error(message='新闻标签不存在!')
        else:
            return json_status.params_error(message=self.get_error(form))
示例#2
0
 def put(self, request):
     """
     # 接收前端 put 请求的值  post
     # request.PUI 没有
     # request.POST
     # <QueryDict: {'tag_name': ['技']}>
     # 所有的参数 全部是存在body POST/GET b'tag_name=%E6%8A%80'
     # 我是采用id来判断
     # 在前端向后台提供了只有两个tag_id(标签id) tag_name  (标签name)
     :param request:
     :return:
     """
     res = QueryDict(request.body)
     tag_name = res.get("tag_name", None)
     tag_id = res.get("tag_id", None)
     if tag_id and tag_name:
         tag = NewsTag.objects.filter(id=tag_id)
         if tag:
             news_tag_exists = NewsTag.objects.filter(
                 name=tag_name).exists()
             if news_tag_exists:
                 return json_status.params_error(message="该标签已经存在,请不要重复输入")
             tag.update(name=tag_name)
             return json_status.result()
         return json_status.params_error(message="标签不存在")
     return json_status.params_error(message="标签不存在")
示例#3
0
 def post(self, request):
     # if request.user.is_authenticated:
     form = AddNewsCommentFrom(request.POST)
     if form.is_valid():
         news_id = form.cleaned_data.get('news_id')
         content = form.cleaned_data.get('content')
         # print(news_id, content)
         news = News.objects.filter(id=news_id).first()
         if news:
             # request.user 匿名用户 必须要登录才能访问这个视图 ajax 方式
             comment = NewsComment.objects.create(content=content,
                                                  author=request.user,
                                                  news=news)
             # create 会返回一个对象
             # [Query Set  NewsComment object (8), NewsComment object (7),NewsComment object (6)]
             print(comment)
             print(type(comment))
             # 序列化 不需要加 many=True
             serializer = NewsCommentSerializer(comment)
             print('=======')
             # {'content': '123213123123123321', 'create_time': '2018-10-22T21:43:15.601645+08:00', 'author': OrderedDict([('id', 1), ('username', 'Admin')])}
             print(serializer.data)
             print('=======')
             return json_status.result(data=serializer.data)
         return json_status.params_error(message="新闻不存在")
     return json_status.params_error(message=form.get_error())
示例#4
0
    def post(self, request):
        """
        更新新闻
        """
        form = forms.NewsEditForm(request.POST)
        if form.is_valid():
            news_id = form.cleaned_data.get('news_id')
            print(news_id)
            title = form.cleaned_data.get('title')
            desc = form.cleaned_data.get('desc')
            thumbnail_url = form.cleaned_data.get('thumbnail_url')
            content = form.cleaned_data.get("content")

            tag_id = form.cleaned_data.get('tag_id')
            newstag = NewsTag.objects.filter(id=tag_id).first()  #查询新闻所属的新闻类

            if newstag:
                new = NewsPub.objects.filter(id=news_id)
                print(new[0].id)

                new.update(id=news_id,
                           title=title,
                           desc=desc,
                           thumbnail=thumbnail_url,
                           auth=request.user,
                           content=content,
                           tag=newstag)

                # print(newstag)
                return json_status.result(message='更新成功!')
            else:
                return json_status.params_error(message='新闻标签不存在!')
        else:
            return json_status.params_error(message=self.get_error(form))
示例#5
0
 def post(self, request):
     # 验证数据 form request.POST传进去
     form = NewsPubForm(request.POST)
     # cleaned_data 写在验证前面 是获取不到值
     if form.is_valid():
         # title  经过Form验证 如果说没通用验证
         # title1 = request.POST.get("title")
         title = form.cleaned_data.get('title')
         desc = form.cleaned_data.get('desc')
         tag_id = form.cleaned_data.get('tag_id')
         thumbnail_url = form.cleaned_data.get('thumbnail_url')
         content = form.cleaned_data.get('content')
         # 去查出来 tag
         tag = NewsTag.objects.filter(id=tag_id).first()
         # print(title)
         # print(desc)
         # print(tag)
         # print(thumbnail_url)
         # print(content)
         # 当前用户 request.user  user.xxx
         if tag:
             News.objects.create(title=title,
                                 desc=desc,
                                 tag=tag,
                                 thumbnail_url=thumbnail_url,
                                 content=content,
                                 author=request.user)
             return json_status.result()
         return json_status.params_error(message="标签不存在")
     # form 没有这个 get_error
     print(form.errors)
     return json_status.params_error(message=form.get_error())
示例#6
0
 def delete(self, request):
     d = QueryDict(request.body)
     banner_id = d.get("banner_id")
     if banner_id:
         banner = NewsBanner.objects.filter(id=banner_id)
         if banner:
             banner.update(is_delete=True)
             return json_status.result()
         return json_status.params_error(message="轮播图不存在")
     return json_status.params_error(message="轮播图id不存在")
示例#7
0
 def post(self, request):
     name = request.POST.get('name')
     if name and bool(name.strip()):
         # exists() 是否存在
         news_tag_exists = NewsTag.objects.filter(name=name).exists()
         if news_tag_exists:
             return json_status.params_error(message='该标签已存在,请不要重复输入')
         NewsTag.objects.create(name=name)
         return json_status.result(message='成功')
     return json_status.params_error(message='标签名不能为空')
示例#8
0
 def put(self, request):
     ret = QueryDict(request.body)
     priority = int(ret.get('priority', 0))
     if priority:
         hot_news_id = int(ret.get('hot_news_id', 0))
         hot_news = NewsHot.objects.filter(id=hot_news_id)
         if hot_news:
             hot_news.update(priority=priority)
             return json_status.result()
         return json_status.params_error(message='热门新闻不存在')
     return json_status.params_error(message='优先级错误')
示例#9
0
 def get(self, request):
     news_id = request.GET.get('news_id')
     if news_id:
         news = News.objects.filter(id=news_id).first()
         if news:
             news_tags = NewsTag.objects.filter(is_delete=True).all()
             context = {'news': news, 'news_tags': news_tags}
             return render(request,
                           'admin/news/news_pub.html',
                           context=context)
         return json_status.params_error(message='新闻找不到')
     return json_status.params_error(message='新闻id错误')
示例#10
0
文件: views.py 项目: rulemaking/-
 def post(self, request):
     form = AddNewsCommentForm(request.POST)
     if form.is_valid():
         news_id = form.cleaned_data.get('news_id')
         content = form.cleaned_data.get('content')
         news = News.objects.filter(id=news_id).first()
         if news:
             comment = NewsComment.objects.create(content=content, author=request.user, news=news)
             serializer = NewsCommentSerializers(comment)
             return json_status.result(data=serializer.data)
         # print(news_id, content)
         return json_status.params_error(message='新闻不存在')
     return json_status.params_error(message=form.get_error())
示例#11
0
 def post(self, request):
     # 取值 name 已经在表存在了 再次输入 提示已经存在
     name = request.POST.get("name")
     # print(name) python 怎么去字符串空格 给空格会被过滤掉 后台的最后一道验证
     if name and bool(name.strip()):
         # exists 是否存  True / False  平时都是一些逻辑
         news_tag_exists = NewsTag.objects.filter(name=name).exists()
         if news_tag_exists:
             return json_status.params_error(message="该标签已经存在,请不要重复输入")
         # 创建数据 成功的标准(怎么样确保成功)
         NewsTag.objects.create(name=name)
         return json_status.result(message="成功")
     return json_status.params_error(message="标签名不能为空")
示例#12
0
 def post(self, request):
     form = NewsHotAddForm(request.POST)
     if form.is_valid():
         news_id = form.cleaned_data.get('news_id')
         priority = form.cleaned_data.get('priority')
         news = News.objects.filter(id=news_id).first()
         if news:
             hot_news = NewsHot.objects.filter(news=news).exists()
             if hot_news:
                 return json_status.params_error(message='该新闻已经是热门新闻')
             NewsHot.objects.create(priority=priority, news=news)
             return json_status.result()
         return json_status.params_error(message='新闻不存在')
     return json_status.params_error(message=form.get_error())
示例#13
0
def delete(self, request):
    from django.http import QueryDict
    res = QueryDict(request.body)
    news_id = res.get('news_id')
    if news_id:
        news = News.objects.filter(id=news_id).first()
        if news:
            hot_news = NewsHot.objects.filter(news=news)
            if hot_news:
                hot_news.update(is_delete=True)
            news.is_delete = True
            news.save()
            return json_status.result()
        return json_status.params_error(message="新闻不存在")
    return json_status.params_error(message="参数错误")
示例#14
0
 def put(self, request):
     res = QueryDict(request.body)
     tag_name = res.get('tag_name', None)
     tag_id = res.get('tag_id', None)
     if tag_id and tag_name:
         tag = NewsTag.objects.filter(id=tag_id)
         if tag:
             news_tag_exists = NewsTag.objects.filter(
                 name=tag_name).exists()
             if news_tag_exists:
                 return json_status.params_error(message='该标签已存在,请不要重复输入')
             tag.update(name=tag_name)
             return json_status.result()
         return json_status.params_error(message='标签不存在')
     return json_status.params_error(message='标签不存在')
示例#15
0
def edit_news_tag(request):
    # post request.POST.get("tag_id)
    # post request.POST.get("tag_name)
    tag_name = request.POST.get("tag_name", None)
    tag_id = request.POST.get("tag_id", None)
    if tag_id and tag_name:
        tag = NewsTag.objects.filter(id=tag_id)
        if tag:
            news_tag_exists = NewsTag.objects.filter(name=tag_name).exists()
            if news_tag_exists:
                return json_status.params_error(message="该标签已经存在,请不要重复输入")
            tag.update(name=tag_name)
            return json_status.result()
        return json_status.params_error(message="标签不存在")
    return json_status.params_error(message="标签不存在")
示例#16
0
def download_doc(request):
    # 获取前端传过来的id
    doc_id = request.GET.get("doc_id")
    # 根据id 查出来文档
    doc = Doc.objects.filter(id=doc_id).first()
    if doc:
        # http://192.168.31.200:8000/media/avatar.jpeg
        file_path = doc.file_path
        # requests 返回文件对象  HttpResponse JsonResponse
        res = FileResponse(requests.get(file_path))
        # 切出文件后缀
        file_type = file_path.split('.')[-1]
        # 设置文件类型 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
        # 上传的时候已经限制了格式 只能上传什么格式
        if file_type == 'jpg':
            # http 设置响应头
            res["Content-type"] = "image/jpeg"
        elif file_type == 'doc':
            res["Content-type"] = "application/msword"
        elif file_type == 'txt':
            res["Content-type"] = "text/plain"
        else:
            res["Content-type"] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
        # 设置附件下载格式  http://192.168.31.200:8000/media/avatar.jpeg(显示图片)
        res["Content-Disposition"] = "attachment; filename={}".format(
            file_path.split('/')[-1])
        # 返回一个文件对象 文件响应对象
        return res
    return json_status.params_error(message="文档不存在")
示例#17
0
 def post(self, request):
     form = CoursePubForm(request.POST)
     if form.is_valid():
         title = form.cleaned_data.get("title")
         video_url = form.cleaned_data.get("video_url")
         cover_url = form.cleaned_data.get("cover_url")
         teacher_id = form.cleaned_data.get("teacher_id")
         # name=teacher_name
         teacher = Teacher.objects.filter(id=teacher_id).first()
         duration = form.cleaned_data.get('duration')
         profile = form.cleaned_data.get("profile")
         outline = form.cleaned_data.get("outline")
         category_id = form.cleaned_data.get('category_id')
         # category 分类
         category = CourseCategory.objects.filter(id=category_id).first()
         course = Course.objects.create(title=title,
                                        video_url=video_url,
                                        cover_url=cover_url,
                                        teacher=teacher,
                                        duration=duration,
                                        profile=profile,
                                        outline=outline,
                                        category=category)
         return json_status.result(data={"course_id": course.id})
     print(form.errors)
     return json_status.params_error(message=form.get_error())
示例#18
0
def comment_list_with_news(request):
    # 100条 不可能说全部返回 根据新闻id 返回对应的评论
    news_id = request.GET.get("news_id")
    news = News.objects.filter(id=news_id).first()
    if news:
        # 获取当前新闻下的所有 news_comments 是什么类型  QuerySet
        news_comments = news.comments.all()
        # <QuerySet [<NewsComment: NewsComment object (1)>, <NewsComment: NewsComment object (2)>]>
        # {"id": 1,}   [{}, {}, {}]
        # print(news_comments)
        # <QuerySet [{'id': 1, 'content': '这是新闻id为3的 第一条评论', 'create_time': datetime.datetime(2018, 10, 22, 12, 57, 48, 745035, tzinfo=<UTC>), 'author_id': 1, 'news_id': 3}, {'id': 2, 'content': 'news_id=3 第二条评论', 'create_time': datetime.datetime(2018, 10, 22, 12, 59, 17, 857235, tzinfo=<UTC>), 'author_id': 1, 'news_id': 3}]>
        # [{id:1}, {id:2}]
        # .values() 确实可以序列化 一般适合单表
        # {'id': 1, 'content': '这是新闻id为3的 第一条评论', 'create_time': datetime.datetime(2018, 10, 22, 12, 57, 48, 745035, tzinfo=<UTC>), 'author_id': {id:1, username:"******"}, 'news_id': 3} 返回合适的json数据
        # comments = list(news_comments.values())  # QuerySet
        # for comment in comments:
        #     # author_id = comment["author_id"]
        #     # User.objects.filter(id=author_id) # 全部查出来 但是返回的全部字段
        #     print(comment)
        # 两个及以上 必须加参数 many=True xxx 没有属性  filter many=True / get()/ first()/create()
        serializer = NewsCommentSerializer(news_comments, many=True)
        print(serializer)
        print(type(serializer))
        print(dir(serializer))
        return json_status.result(data=serializer.data)
    return json_status.params_error(message="新闻找不到")
示例#19
0
 def delete(self, request):
     ret = QueryDict(request.body)
     hot_news_id = int(ret.get('hot_news_id', 0))
     hot_news = NewsHot.objects.filter(id=hot_news_id)
     if hot_news:
         hot_news.update(is_detele=False)
         return json_status.result()
     return json_status.params_error(message='热门新闻不存在')
示例#20
0
 def delete(self, request):
     res = QueryDict(request.body)
     tag_id = res.get('tag_id', None)
     tag = NewsTag.objects.filter(id=tag_id)
     if tag_id and tag:
         tag.update(is_delete=False)
         return json_status.result()
     return json_status.params_error(message='标签不存在')
示例#21
0
文件: views.py 项目: rulemaking/-
def comment_list_with_news(request):
    news_id = request.GET.get('news_id')
    news = News.objects.filter(id=news_id).first()
    if news:
        news_comments = news.comments.all()
        serializer = NewsCommentSerializers(news_comments, many=True)
        return json_status.result(data=serializer.data)
    return json_status.params_error(message='新闻找不到')
示例#22
0
def news_hot_list(request):
    """
    热点新闻列表
    """
    hot_news = NewsHotAddModle.objects.all()
    if hot_news:
        serailizer = NewsHotSerailizer(hot_news,many=True)
        return json_status.result(data=serailizer.data)
    return json_status.params_error(message='没有设置优先级的新闻!')
示例#23
0
    def post(self, request):
        """
        添加新闻标签
        :param request:
        :return:
        """
        tagVal = request.POST.get('name', None)

        if tagVal:
            news = NewsTag.objects.filter(
                name=tagVal).exists()  #如果存在返回True,否则False
            if not news:
                NewsTag.objects.create(name=tagVal)
                return json_status.result(message='添加成功!')
            else:
                return json_status.params_error(message='标签名已存在,请不要重复输入!')
        else:
            return json_status.params_error(message='值不能为空!')
示例#24
0
    def delete(self, request):

        tagid_dict = QueryDict(request.body)
        tagid = tagid_dict.get('tag_id')
        news = NewsTag.objects.filter(id=tagid)
        if tagid and news:
            news.update(is_delete=False)
            return json_status.result(message="删除成功!")
        return json_status.params_error(message='删除失败!请联系管理员。')
示例#25
0
文件: views.py 项目: rulemaking/-
def news_with_tag(request):
    tag_id = int(request.GET.get('tag_id', 0))
    if tag_id:
        newses = News.objects.filter(tag=tag_id, is_delete=True).all()
        if not tag_id:
            return json_status.params_error(message='该分类下无新闻')
    else:
        newses = News.objects.filter(is_delete=True).all()
    serialzier = NewsSerializer(newses, many=True)
    return json_status.result(data={'newses':serialzier.data})
示例#26
0
 def delete(self, request):
     """
     删除新闻
     :param request:
     :return:
     """
     res = QueryDict(request.body)
     news_id = res.get('news_id')
     if news_id:
         news = NewsPub.objects.filter(id=news_id).first()
         if news:
             hot_news = NewsHotAddModle.objects.filter(news=news)
             if hot_news:
                 hot_news.update(is_delete=False)
             news.is_delete = False
             news.save()
             return json_status.result()
         return json_status.params_error(message="新闻不存在")
     return json_status.params_error(message="参数错误")
示例#27
0
 def delete(self, request):
     res = QueryDict(request.body)
     # 前端只传了 tag_id  (tagId 错误的)
     tag_id = res.get("tag_id", None)
     tag = NewsTag.objects.filter(id=tag_id)
     # 防止有的人 绕过浏览器
     if tag_id and tag:
         tag.update(is_delete=True)
         return json_status.result()
     return json_status.params_error(message="标签不存在")
示例#28
0
 def post(self, request):
     # 获取手机号
     telephone = request.POST.get("telephone")
     # 得到用户 查出用户
     user = User.objects.filter(telephone=telephone).first()
     if user:
         # 获取(权限)列表组 [1,2 ]
         groups_ids = request.POST.getlist('groups')
         if groups_ids:
             # 过滤选中的组 id__in 这个在不在 [1, 2]
             group = Group.objects.filter(id__in=groups_ids)
             # 设置组
             user.groups.set(group)
             # 设置为员工
             user.is_staff = True
             user.save()
             return json_status.result()
         return json_status.params_error('至少选一个分组')
     return json_status.params_error('该用户不存在,请先注册后再添加')
示例#29
0
 def post(self, request):
     form = NewsPubForm(request.POST)
     if form.is_valid():
         title = form.cleaned_data.get('title')
         desc = form.cleaned_data.get('desc')
         tag_id = form.cleaned_data.get('tag_id')
         thumbnail_url = form.cleaned_data.get('thumbnail_url')
         content = form.cleaned_data.get('content')
         tag = NewsTag.objects.get(id=tag_id)
         if tag:
             News.objects.create(title=title,
                                 desc=desc,
                                 tag=tag,
                                 thumbnail_url=thumbnail_url,
                                 content=content,
                                 author=request.user)
             return json_status.result()
         return json_status.params_error(message='标签不存在')
     print(form.errors)
     return json_status.params_error(message=form.get_error())
示例#30
0
    def get(self,request):
        news_id = request.GET.get('news_id')
        news = NewsPub.objects.filter(id = news_id,is_delete=True).first()
        if news:
            new_contents = news.newsconten_set.all()   #通过新闻反向查询评论
            print(type(new_contents))

            contents =NewsContentSerailizer(new_contents,many=True)   #序列化结果
            return json_status.result(data=contents.data)
        else:
            return json_status.params_error(message='没有这条新闻!')