I've beem working on a simple banking app based on the Django tutorial. 
Thanks to your help it almost works now. It was working using templates but 
after making some changes to get HttpResponseRedirect to work I changed 
what was in the urls file like it shows in the tutorial. Now, the server 
doesn't run. It says there's an attribute error. I've temporarily left the 
user name and password in at the moment. I had a look at their tutorial how 
to do a use the Django authentication system (thanks for telling me about 
that) and I'm going to change that after I understand what's going on here. 
It's amazing how much you can do with Django. Do you think with time you 
get more used to what different errors mean? The errors seem new and 
confusing to me at the moment. Any help would be very much appreciated. 
Thanks in advnace.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/b30091ce-fcbf-461e-869e-bba72eb9dcfe%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Title: Login
{% load staticfiles %}
{% csrf_token %} Your details:
Username:

Password:
from django.shortcuts import get_object_or_404
from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
#from django.template import loader
from django.views import generic

from .models import Person, Account1

# Create your views here.
def deposit(request):
	selected_rbox = request.POST.get('Account1')
	selected_rbox = request.POST.get('Account2')
	selected_amount = request.POST.get('Amount')
	person = Person
	account1 = Account1
	context = {'account1':account1,'person':person}
	template = loader.get_template('banking/deposit.html')
	return HttpResponse(template.render(context,request))

def hello(request):
	person = Person
	account1 = Account1
	context = {'account1':account1,'person':person}
	#template = loader.get_template('banking/login.html')
	#return HttpResponse(template.render(context,request))
	return render(request, 'banking/login.html')
	#return render(request, 'banking/login.html', {
	#	'person': person,
	#	'error_message': "You didn't select a choice.",
        #	})
	
def login(request):
	#account1 = get_object_or_404(Account1) 
	#person = get_object_or_404(Person) 
	account1 = Account1
	person = Person 
	try:
		selected_login = request.POST.get('login')
		selected_username = request.POST.get('username')
		#selected_login = person.choice_set.get(pk=request.POST['login'])
		#selected_password = person.choice_set.get(pk=request.POST['password'])

	# What is Choice object doing in the line below?
	#except (KeyError, Choice.DoesNotExist):
	except (KeyError, Account1.DoesNotExist):
	#except (KeyError, Account1.DoesNotExist):
        # Redisplay the question voting form.
		#account1 = get_object_or_404(Account1) 
		#person = get_object_or_404(Person) 
		#person = Person
		#account1 = Account1
		#return render(request, 'banking/login.html', {
            	#'person': person,
            	#'error_message': "You didn't select a choice.",
		#return render(request, 'banking/login.html')
		return render(request, 'banking/login.html', {
		'person': person,
		'error_message': "You didn't select a choice.",
        	})

		#person = Person
		#account1 = Account1
		#context = {'account1':account1,'person':person}
		#template = loader.get_template('banking/login.html')
		#return HttpResponse(template.render(context,request)
	else:
        	# Always return an HttpResponseRedirect after successfully dealing
        	# with POST data. This prevents data from being posted twice if a
        	# user hits the Back button.
		#person = Person
		#account1 = Account1
		#context = {'account1':account1,'person':person}
		#template = loader.get_template('banking/welcome.html')
		#return HttpResponse(template.render(context,request))
		return HttpResponseRedirect(reverse('banking:welcome'))


def transfer(request):
	person = Person
	account1 = Account1
	context = {'account1':account1,'person':person}
	template = loader.get_template('banking/transfer.html')
	return HttpResponse(template.render(context,request))

def welcome(request):
	person = Person
	account1 = Account1
	context = {'account1':account1,'person':person}
	template = loader.get_template('banking/welcome.html')
	return HttpResponse(template.render(context,request))

def withdraw(request):
	person = Person
	account1 = Account1
	context = {'account1':account1,'person':person}
	template = loader.get_template('banking/withdraw.html')
	return HttpResponse(template.render(context,request))
from django.conf.urls import url

from . import views

app_name = 'banking'
urlpatterns = [
	# ex: /banking/deposit
	url(r'^deposit/$', views.DepositView.as_view(), name='deposit'),
   	# ex: /banking/
	url(r'^$', views.HelloView.as_view(), name='hello'),
    	# ex: /banking/login
	#url(r'^login/$', views.LoginView.as_view(), name='login'),
        url(r'^login/$', views.login, name='login'),
    	# ex: /banking/transfer
	url(r'^transfer/$', views.TransferView.as_view(), name='transfer'),
   	# ex: /banking/withdraw
	url(r'^withdraw/$', views.WithdrawView.as_view(), name='withdraw'),   
   	# ex: /banking/welcome
	url(r'^welcome/$', views.WelcomeView.as_view(), name='welome'),
	]
from django.db import models

# Create your models here.
class Person(models.Model):
	first_name = models.CharField(max_length=4,default="Bob")
	last_name = models.CharField(max_length=6,default="Smith")
	login_name = models.CharField(max_length=3,default="me")
	password = models.CharField(max_length=7, default="password")
	person_text = models.CharField(max_length=10, default="Bob Smith") 
	
	def get_first_name(self):
		return self.first_name
	
	def get_last_name(self):
		return self.last_name

	def get_login_name(self):
		return self.login_name

	def get_password(self):
		return self.password

	def __str__(self):
		return self.person_text

class Account1(models.Model):
	account_number = models.IntegerField(default=12345678)
	bank_balance = models.DecimalField(max_digits=4, decimal_places=2, default=12.99)
	interest_rate = models.IntegerField(default=2)
	account_name = models.CharField(max_length=16, default="Current Account")
	person = models.ForeignKey(Person, on_delete=models.CASCADE, default="") 
        
	def get_account_number(self):
		return self.account_number

	def get_bank_balance(self):
		return self.bank_balance

	def deposit(self, amount):
		self.bank_balance = self.bank_balance + amount
		return

	def get_interest_rate(self):
		return self.interest_rate

	def withdraw(self, amount):
		self.bank_balance = self.bank_balance - amount
		return

	#def __str__(self):
	#	return self.account_name

Reply via email to