码迷,mamicode.com
首页 > 其他好文 > 详细

BBS论坛(三十一)

时间:2018-06-11 22:46:43      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:com   tle   _id   click   name   mod   url   add   foreign   

31.帖子加精和取消加精功能完成

(1)apps/models.py

class HighLight(db.Model):
    __tablename__=highlight_post
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    post_id=db.Column(db.Integer,db.ForeignKey(post.id))
    create_time=db.Column(db.DateTime,default=datetime.now)

    post=db.relationship(PostModel,backref=highlight)

(2)cms/views.py

@bp.route(/posts/)
@login_required
@permission_required(CMSPermission.POSTER)
def posts():
    context = {
        posts: PostModel.query.all()
    }
    return render_template(cms/cms_posts.html,**context)


@bp.route(/hpost/,methods=[POST])
@login_required
@permission_required(CMSPermission.POSTER)
def hpost():
    post_id=request.form.get(post_id)
    if not post_id:
        return restful.params_error(message=请传入帖子id)
    post=PostModel.query.get(post_id)
    if not post:
        return restful.params_error(message=没有这篇帖子)
    highlight=HighLight()
    highlight.post=post
    db.session.add(highlight)
    db.session.commit()
    return restful.success()



@bp.route(/uhpost/,methods=[POST])
@login_required
@permission_required(CMSPermission.POSTER)
def uhpost():
    post_id = request.form.get(post_id)
    if not post_id:
        return restful.params_error(message=请传入帖子id)
    post = PostModel.query.get(post_id)
    if not post:
        return restful.params_error(message=没有这篇帖子)
    print(post_id)
    highlight=HighLight.query.filter_by(post_id=post_id).first()
    print(highlight)
    db.session.delete(highlight)
    db.session.commit()
    return restful.success()

(3)cms_posts.html

{% extends ‘cms/cms_base.html‘ %}
{% from ‘common/_macros.html‘ import static %}
{% block title %}
    帖子管理
{% endblock %}

{% block head %}
<script src="{{ static(‘cms/js/posts.js‘) }}"></script>
{% endblock %}

{% block page_title %}
    {{ self.title() }}
{% endblock %}

{% block main_content %}
    <table class="table table-bordered">
        <thead>
        <tr>
            <th>标题</th>
            <th>发布时间</th>
            <th>版块</th>
            <th>作者</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for post in posts %}
            <tr data-id={{ post.id }} data-highlight={{ 1 if post.highlight else 0 }}>
                <td><a target="_blank" href="{{ url_for(‘front.post_detail‘,post_id=post.id) }}">{{ post.title }}</a>
                </td>
                <td>{{ post.create_time }}</td>
                <td>{{ post.board.name }}</td>
                <td>{{ post.author.username }}</td>
                <td>
                    {% if post.highlight %}
                        <button class="btn btn-info btn-xs highlight-btn">取消加精</button>
                    {% else %}
                        <button class="btn btn-danger btn-xs highlight-btn">加精</button>
                    {% endif %}
                    &nbsp;&nbsp;&nbsp;<button class="btn btn-default btn-xs">移除</button>
                </td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
{% endblock %}

(4)cms/js/posts.js

$(function(){
    $(‘.highlight-btn‘).on(‘click‘,function(){
       var $this=$(this);
       var tr=$this.parent().parent();
       var post_id=tr.attr(‘data-id‘);
       var highlight=parseInt(tr.attr(‘data-highlight‘));
       var url=‘‘;
        if(highlight){
           url=‘/cms/uhpost/‘
        }else{
            url=‘/cms/hpost/‘
        }
        zlajax.post({
            ‘url‘:url,
            ‘data‘:{
                ‘post_id‘:post_id
            },
            ‘success‘:function(data){
                if(data[‘code‘]==200){
                    zlalert.alertSuccessToast(‘操作成功‘);
                    setTimeout(function(){
                        window.location.reload();
                    },500);
                }else{
                    zlalert.alertInfo(data[‘message‘]);
                }
            }
        })
    });
});

技术分享图片

 

BBS论坛(三十一)

标签:com   tle   _id   click   name   mod   url   add   foreign   

原文地址:https://www.cnblogs.com/derek1184405959/p/9170315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!