Я создаю веб-сайт банка, на котором пользователи могут открывать счета, снимать средства, вносить депозит и просматривать историю транзакций. Работаю над ними две недели. Вход и регистрация работают, и он сохраняет адрес электронной почты, имя пользователя и пароль, но когда я ввожу сумму, запрос работает, и я перенаправляюсь без каких-либо ошибок, но сумма (баланс) не сохраняется. Затем я попытался жестко запрограммировать сумму, а затем изменить ее позже, когда человек получит aws или внесет депозит. Тем не менее, те же результаты, когда я пытаюсь отобразить текущий баланс на панели инструментов, он остается пустым. Я вставил код и использую Django 3.0 +
Views.py
from django.shortcuts import render, redirect
from django.contrib.auth import logout, authenticate, login
from accounts.forms import SignUpForm
from django.contrib.auth.forms import AuthenticationForm, User
from django.contrib.auth.decorators import login_required
from django.contrib import messages
# Welcome, Login, Signup
def welcome(request):
return render(request, 'accounts/welcome.html')
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
user.amount = 500
user.save()
u = authenticate(username=username, password=password)
return redirect('login-page')
else:
messages.error(request, 'Invalid input or missing fields. Please try again!')
return redirect('signup-page')
else:
form = SignUpForm()
return render(request, 'accounts/signup.html', {'form': form})
def login_view(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('dashboard')
else:
messages.error(request,'Invalid login credentials. Please try agian.')
return redirect('login-page')
else:
messages.error(request,'Invalid login credentials. Please try agian.')
return redirect('login-page')
form = AuthenticationForm()
return render(request, 'accounts/login.html', {'form': form})
# Dashboard, Transfer, Transactions
@login_required(login_url='/login/')
def dashboard(request):
user = User.objects.all()
return render(request, 'accounts/dashboard.html', {'user': user})
Forms.py
from django import forms
from django.contrib import messages
from django.contrib.auth.forms import UserCreationForm, User
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=128, help_text='Input valid email')
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
панель инструментов. html
{% extends 'accounts/base.html' %}
{% load static %}
{% block content %}
<div class="row">
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Current Balance</h5>
<p class="card-text">{{ request.user.amount }}</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Total Expenses</h5>
<p class="card-text">Amount goes here.</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Total Spent</h5>
<p class="card-text">Amount goes here.</p>
</div>
</div>
</div>
<div class="col-sm-4 py-4">
<div class="card">
<div class="card-body extended">
<h5 class="card-title">Credit Card</h5>
<h4 class="card-subtitle" id="cc">**** **** **** 1234</h4>
<div id="med-pad">
<p class="card-text medium">{{ request.user.username }}</p>
<p class="card-text medium">Valid Through: 07/22</p>
</div>
<p id="cvv-pad" class="card-text">CVV: 001</p>
</div>
</div>
</div>
<div class="col-sm-8 py-4">
<div class="card">
<div class="card-body extended">
<h5 class="card-title">Total Spent</h5>
<p class="card-text">Amount goes here.</p>
</div>
</div>
</div>
</div>
{% endblock %}
Я пробовал модели, но они испортили текущую форму входа и регистрации. Я использую Django 3.0 и довольно новичок, поэтому, пожалуйста, любая помощь будет принята с благодарностью!