I've read and reread the tutorial and I'm working on writing a very simple
banking app by copying and modifying what's in the tutorial. I've started a
new project and copied what was on the first two pages of the tutorial and
I've written a new models file. Make migrations works okay with the new
models. I tried testing these new models using the test below and the
console came up with an attribute error. Did I make a stupid mistake
somewhere? Any help would be much appreciated.
Traceback (most recent call last):
File "/home/DJapps/banking/mybank/banking/test_models.py", line 12, in
test_animals_can_speak
self.assertEqual(person.get_first_name(), 'Bob')
AttributeError: 'Person' object has no attribute 'get_first_name'
from django.test import TestCase
from banking.models import Person
class PersonTestCase(TestCase):
def setUp(self):
Person.objects.create(first_name="Bob", last_name="Smith",
login_name="myname", password="Dog")
def test_animals_can_speak(self):
"""Animals that can speak are correctly identified"""
person = Person.objects.get(first_name="Bob")
#person = mommy.make(Person)
self.assertEqual(person.get_first_name(), 'Bob')
#self.assertEqual(person.get_last_name(), 'Smith')
#self.assertEqual(person.get_login_name(), 'myname')
#self.assertEqual(person.get_password(), 'Dog')
#self.assertEqual(person._str__, person_text)
New models...
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, user_input):
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_text = 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_text
--
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 [email protected].
To post to this group, send email to [email protected].
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/1b946075-f532-408f-ace7-4e4361ad350b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.