편집 : 문제가 해결되었습니다. 이제 또 다른 문제가 있습니다. 데이터 변수는 "OK"또는 "EXISTS"를 반환 할 때 아무 것도 반환하지 않습니다.Ajax보기에서 개체를 만들 수 없습니다.
나는 오버레이 효과가있는 템플릿이 있습니다. income.html 템플릿에는 양식이 있고 "새 카테고리 추가"버튼을 클릭하면 새 양식이 작은 양식으로 표시됩니다 (오버레이 효과). 나는 이유를 모르지만 카테고리는 만들어지지 않습니다. html 스크립트에서 몇 가지 오류가있는 것 같지만 식별 할 수는 없습니다.
income.html :
(document).ready(function(){
$("#new_cat").live("click", (function() {
var cat_name = $("#nc").val();
if (cat_name) {
$.get("/cashflow/new_cat/0/", { name: cat_name, account: {{ account }} },
function(data){
if (data == "OK") {
$("#id_category").val(cat_name);
}
if (data == "EXISTS") {
var error = "The category already exists";
alert(error);
}
});
}
else {
var error = "Please enter a name";
alert(error);
}
}))
});
</script>
...
<form>{% csrf_token %}
<label for="name">Name:</label><input type="text" id="nc" />
<input type="submit" value="Submit" id="new_cat" />
</form>
views.py :이 사기 조금 보이는
@login_required
def income(request, account_name):
account = account_name
if request.method == 'POST':
form = TransForm(user=request.user, data=request.POST)
if form.is_valid():
income = form.save(commit=False)
income.type = 0
income.account = Account.objects.get(
name = account_name,
user = request.user)
income.name = form.cleaned_data['name']
income.category = form.cleaned_data['category']
income.save()
uri = ("/cashflow/account/%s") % str(account_name)
return HttpResponseRedirect(uri)
else:
form = TransForm(user=request.user)
context = {
'TransForm': form,
'type': '0',
'account': account,
}
return render_to_response(
'cashflow/income.html',
context,
context_instance = RequestContext(request),
)
def new_cat(request, tipo):
if request.method == u'GET':
GET = request.GET
if GET.has_key(u'name'):
name = request.GET[u'name']
account = request.GET[u'account']
c = Category.objects.filter(namee=name, account=account)
if c:
s = "EXISTS"
else:
c = Category(name = name, user = request.user,
type = type, account = account)
c.save()
s = "OK"
return HttpResponse(s)
데모를 게시하여 도움이 될만한 문제가 있다면 게시 할 수 있습니다. [JS Fiddle] (http://jsfiddle.net/) 또는 [JS Bin] (http://jsbin.com/)을 제안 할 것입니다. –