Django Форма не записывается в JSON Файл в html Ошибка вызова - PullRequest
0 голосов
/ 17 января 2020

Я пишу программу на django, где мне нужно записать результаты формы в файл JSON, а из этого файла JSON записать переменные в файл html. Мне удалось получить доступ к переменным файла json в файле html, но программа представлений для записи переменных формы в json не работает. Вот мой код:

views.py

from django.shortcuts import render
from .forms import ListForm
from django.http import HttpResponseRedirect
import json
import os
from django.conf import settings

pricesFile = os.path.join(settings.BASE_DIR, 'CharlemagneApp/static/prices.json')
accountInfoFile = os.path.join(settings.BASE_DIR, 'CharlemagneApp/static/accountInfo.json')

def MakeMoney(request):
    if request.method == 'POST':
        form = ListForm(request.POST)
        if form.is_valid():
            def getJSON(filePathAndName):
                with open(filePathAndName, 'r') as fp:
                    return json.load(fp)

            def StartProgram(request):
                #print("program started")
                rawJSON = getJSON(pricesFile)
                rawJSON['capital'] = int(form.cleaned_data['capitalToInvest'])
                with open(pricesFile, 'w') as fp:
                    json.dump(rawJSON, fp)

                rawJSON2 = getJSON(accountInfoFile)
                rawJSON2['email'] = form.cleaned_data['robinUser']
                rawJSON2['pass'] = form.cleaned_data['robinPass']
                with open(accountInfoFile, 'w') as fp:
                    json.dump(rawJSON2, fp)

                return render(request, 'index.html')

            StartProgram()

            return HttpResponseRedirect('/index.html/')
    else:
        form = ListForm()

    return render(request, 'home.html', {'form': form})


def Pass(request):
    return render(request, 'index.html')

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('index.html', views.MakeMoney, name='index'),
    path('home.html', views.Pass, name='home')
]

accountInfo. json

{
    "email": "bobqwerty@gmail.com",
    "pass": "abc1234"
}

index. html

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>

<script>
  $(function() {
     $.getJSON('../static/accountInfo.json', function(data) {
       console.log(data);
       var tblRow = "<tr>" + "<td>" + data.email + "</td>" + "<td>" + data.pass + "</td>" + "</tr>"
       $(tblRow).appendTo("#userdata tbody");
     });
  });
</script>
</head>

<body>
  <p>Your money is currently being invested. Open your Robinhood account to see it in action.</p>
<div class="wrapper">
  <div class="profile">
     <table id="userdata" border="1">
          <thead>
              <th>Robinhood Email</th>
              <th>Robinhood Password</th>
              <th>Capital to Invest</th>
          </thead>
          <tbody>

          </tbody>
     </table>
  </div>
</div>

</body>
</html>

home. html

{% extends 'base.html' %}

{% block title %}Home{% endblock %}

{% block content %}
<form action="/home.html" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit">
</form>


{% endblock %}

Любая помощь в решении этой ошибки будет принята с благодарностью, так как я пробовал много решений без работы. Заранее спасибо!

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