Django хранит данные JSON для моделей - PullRequest
0 голосов
/ 22 октября 2018

image Я хочу сохранить данные json в моделях.Как это возможно?Я пытался использовать URL-адрес, но не мог дать правильный результат.Пожалуйста, предложите любой способ решить эту проблему.Если я использую метод get, то он получит данные, которые будут отображаться в командной строке, но не в упрощенном методе.Я следовал этому https://ask.metafilter.com/154077/How-do-I-read-a-JSON-object-in-Python, но это также не решило мою проблему.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>    #My alert
    [{"BillNo":"4353","BillDetails":"my bill","Amount":"455"},{"BillNo":"4353","BillDetails":"my bill","Amount":"455"},{"BillNo":"4353","BillDetails":"my bill","Amount":"455"},{"BillNo":"4353","BillDetails":"my bill","Amount":"455"},{"BillNo":"4353","BillDetails":"my bill","Amount":"45"},{"BillNo":"43","BillDetails":"my bill","Amount":"600"}]

    <script>
    $("#btnjson").click(function () {
    			var array1 = [];
    					$("tbody tr").each(function () {
    							
                        //var amount = $(this).find('td').eq(2).text().trim();
                        //if (!isNaN(amount) && parseFloat(amount) > 0) {
                            var firstTableData = {};
                            firstTableData.BillNo = $(this).find('td').eq(0).text().trim();
                            firstTableData.BillDetails = $(this).find('td').eq(1).text().trim();
                            firstTableData.Amount = $(this).find('td').eq(2).text().trim();
                            array1.push(firstTableData);
                        //}
                    });
    				{
    				jQuery.get( "/jsondata/", { data: array1 } );
    				 
        			alert(JSON.stringify(array1));
    				};

    				//e.preventDefault();
    			});
            });
    </script>
    Bill No: <input type="text" name="billno" id="billNo" autocomplete="off">
    			Amount: <input type="text" name="amount2" id="amnt" pattern="[0-9]+" title="please enter amount" autocomplete="off">
    			<br>
    			Bill Details: <input type="text" id="billDetails" name="billdetails" style="margin: 1px 0px 20px; width: 850px; height: 42px;" autocomplete="off">
    			<button type="button" id="btnAdd" class="button" value="Add">Add</button> <button type="button" id="btn2" class="button" value="Complete all entries">Complete All entries</button>
    			 <br><br>
    			<table name="txt" id="tempResult" align="center">
    			  <thead>
    			   <tr>
    				 <th>Bill No</th>
    				 <th>Bill Details</th>
    				 <th>Amount</th>
    				 <th>Action</th>
    			   </tr>
    			  </thead>
    			  <tbody>
    			  </tbody>
    			  <tfoot>
    				<tr>
    				  <td></td>
    				  <td></td>
    				  <td></td>
    				  <td>Total : <span id="total"></span></td>
    				</tr>
    			   </tfoot>
    			 </table>
    <input id="btnjson" type="submit" value="ok"  /><br />
#views.py

@csrf_exempt
def jsdata(request):
	b_details = request.POST['']
	data = json.loads(list(array1))
	for billno in data():
	 print(billno)

    #models

    class Mvouchar(models.Model):
    	related = models.ForeignKey(Signs, on_delete=models.CASCADE, null=True, blank=True)
    	bill_no = models.CharField(max_length=80, null=True, blank=True)
    	bill_details = models.CharField(max_length=1000, null=True, blank=True)
    	am = models.CharField(max_length=30, null=True, blank=True)

1 Ответ

0 голосов
/ 22 октября 2018

b_details = request.POST[''] вызывает проблему.Потому что ключ не существует.Вы можете изменить его на b_details = request.POST.get[''].Он вернет None, если ключ отсутствует.Вам нужно изменить вызов API на POST-запрос примерно так:

$.ajax({
        url: '/jsondata/',
        data: {
          'BillNo': $(this).find('td').eq(0).text().trim();
           ...
        },
        dataType: 'json',
        success: function (data) {
          if (data.is_taken) {
            alert("Message.");
          }
        }
      });

У меня очень мало знаний об AJAX и JQuery.Я сослался на пост Как я могу POST с JQuery / Ajax в Django? и https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...