在Django类中使用对象集合是否可行

0 投票
1 回答
740 浏览
提问于 2025-04-16 19:45

我正在尝试用很多类来实现一个金融应用程序(关于Java的)。我有这样的情况:

class User {

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

接口:账户

然后以下类实现了这个接口:

  1. 储蓄账户
  2. 定期账户
  3. 保险账户

每个账户都会有一个用户对象。

因为我主要用Java,所以我想知道我能否在我的用户类中使用账户对象的集合。

另外,如果我使用集合,Django会如何处理这些关系并创建数据库表呢?

1 个回答

1

你可能想用 django.contrib.auth,因为它已经提供了一个 User 模型。所以你应该写一个模型来 存储额外的用户信息,而不是重新定义一个新的 User 模型。Django 的模型通常代表数据库中的表,每个属性对应数据库中的一个字段。你定义你的模型和它们之间的关系,Django 会提供一个很方便的数据库访问接口。通常你不会“存储一堆 Account 对象”,而是创建另一个模型,并使用 ForeignKey 字段来描述模型之间的关系。

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

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

然后你可以使用 Django 的 API 来操作你的模型:

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 也是个不错的主意。

撰写回答