1. 程式人生 > >django前端檢視與新增在同一個views方法中實現

django前端檢視與新增在同一個views方法中實現

1,前端樣式:

2.html程式碼

{% load staticfiles %}
<p class="text-right"><button class="btn btn-primary" id="add_column" onclick="add_column()">add column</button> </p>
<script type="text/javascript" src="{% static "js/jquery.js" %}"></script>
<script type="text/javascript" src="{% static "js/layer.js" %}"></script>
<script type="text/javascript">
    function add_column(){
        var index = layer.open({
            type:1,
            skin:"layui-layer-rim",
            area:["400px","200px"],
            title:"新增欄目",
            content:'<div class="text-center" style="margin-top:20px"><p>請輸入新的欄目名稱</p><p>{{ column_form.column }}</p></div>',
            btn:['確定','取消'],
            yes: function(index,layero){
                column_name = $('#id_column').val();
                $.ajax({
                    url: '{% url 'article:article_column' %}',
                    type:'POST',
                    data: {'column':column_name},
                    success:function (e){
                    if(e=="1"){
                        parent.location.reload();
                        layer.msg("good");
                    }else{
                        layer.msg("此欄目已有,請更換名稱");
                    }
                }
                });
            },
            btn2: function(index,layero){
                layer.close(index);
            }
        }
        )
    }
</script>

後臺程式碼:

@login_required(login_url='/account/login/')
@csrf_exempt
def article_column(request):
    '''
    檢視和更新article_column
    :param request:
    :return:
    '''
    if request.method == "GET":
        columns = ArticleColumn.objects.filter(user=request.user)
        column_form = ArticleColumnForm()
        return render(request,'article/column/article_column.html',{'columns':columns,'column_form':column_form})

    if request.method == "POST":
        column_name = request.POST['column']
        columns = ArticleColumn.objects.filter(user=request.user,column = column_name)
        if columns :
            return HttpResponse(0)
        else:
            ArticleColumn.objects.create(user=request.user,column=column_name)
            return HttpResponse(1)