I can't find where is mistake. please help
When I submit form I get below error in console
Uncaught RangeError: Maximum call stack size exceeded at buildParams
I saw different answers but they didn't help me to find error
Jquery
<script type="text/javascript">
var frm = $('#message-form');
frm.on('submit',function(e){
e.preventDefault();
$.ajax({
type: frm.attr("method"),
url: "message/message_form/",
dataType: 'json',
data: { csrfmiddlewaretoken: "{{ csrf_token }}", frm:frm},
})
.done(function(response){
console.log(response.message)
});
});
</script>
HTML
<div class="fixed-bottom">
<form id="message-form" user_id="{{u.id}}" method="POST">
<input type="hidden" id="user_id" name="user_id" value="{{u.id}}">
{% csrf_token %}
<div class="container">
<div class="row">
<div id="text" class="col-10">
{{ msgform.text }}
</div>
<div class="col-1">
<button id="submit" class="btn" type="submit"><img height="30px" src="/static/img/send-button.png" alt="send"></button>
</div>
</div>
</div><br>
</form>
</div>
Thanx in advanced
the problem in sending data.
When I use JSON.stringify
to post data
and accept in views as json.loads(request.POST.get('frm'))
everything works fine
$('#messageform').on('submit', function(e) {
e.preventDefault();
var frm = {
'user_id': $('#user_id').attr('value'),
'text': $('#form_message').val()
};
frm = JSON.stringify(frm);
$.ajax({
type: 'POST',
url: "message/message_form/",
dataType: 'json',
data: {
csrfmiddlewaretoken: "{{ csrf_token }}",
'frm': frm
},
})
});
views.py
def post(self, request):
dictionary = json.loads(request.POST.get('frm'))
print('=================',dictionary)
u = get_object_or_404(User,pk=dictionary['user_id'])
msg = message.objects.filter(sender=request.user).filter(receiver=u).all() | message.objects.filter(sender=u).filter(receiver=request.user).all()
u = message.objects.create(sender=request.user,receiver=u,text=dictionary['text'])
#if request.user != u and u.objects.filter(receiver__sender=request.user,receiver__receiver=u,receiver__read=False).exists :
# notify.send(request.user, recipient=u, verb="message you please read in message box",public=False)
# msg = message.objects.filter(sender=request.user).filter(receiver=u).all() | message.objects.filter(sender=u).filter(receiver=request.user).all()
msg = dictionary['text']
data = { "message":msg}
return HttpResponse(json.dumps(data), content_type='application/json')