django前端檢視與新增在同一個views方法中實現
阿新 • • 發佈:2018-10-31
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)