Можно ли использовать коллекцию объектов внутри классов Django в Python? - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь реализовать приложение Finanace со многими классами (относительно Java).У меня есть этот случай

class User {

String name;
Int age;
Collection<Accounts> accounts;

Интерфейс учетной записи

Тогда следующие классы реализуют интерфейс

  1. Сберегательный счет
  2. Фиксированная учетная запись
  3. Страховая учетная запись

У учетной записи будет объект пользователя

Поскольку я являюсь Java-человеком, я хочу знать, могу ли я использовать коллекциюобъектов Account в моем классе пользователя.

Также, как Django будет обрабатывать отношения и создавать таблицы базы данных, если я использую коллекцию

1 Ответ

1 голос
/ 17 июня 2011

Возможно, вы захотите использовать django.contrib.auth, который уже предоставляет модель User, поэтому вы захотите написать модель для хранения дополнительной пользовательской информации вместо определения новой Userмодель.Модели Django (как правило) представляют таблицы базы данных, каждый атрибут представляет поле базы данных.Вы определяете свои модели и их отношения, и Django предоставляет хороший API для доступа к базе данных.Обычно вы не «храните коллекцию объектов Account», вы создаете другую модель и используете поле ForeignKey для описания взаимосвязи между моделями.

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    age = models.IntegerField()

class Account(models.Model):
    user_profile = models.ForeignKey('UserProfile')

А затем вы будете использовать API Django дляработа с вашими моделями:

profile = User.objects.get(id=1).get_profile() # get user's profile
profile.account_set.all() # get all accounts associated with user's profile
acct = Account() # create a new account
profile.account_set.add(acct) # add a new account to the user's profile

Учебное пособие по Django - хорошее место для начала, если вы хотите использовать Django для этого проекта, вам нужно некоторое представление о том, как все делается.Также было бы неплохо сначала изучить Python .

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