0

我为费用应用程序定义了一个费用模型,

class Expense(models.Model):
    pub_date = models.DateTimeField()
    amount = models.IntegerField()
    memo = models.TextField()

我想创建丢失的单独表来维护不同用户的数据,例如

james_expense_table for james 
william_expense_table for william
....
balabala_expense_table for balabala

它们的行为完全相同,就像平行对象一样。唯一的区别是前缀。这样,我就可以轻松地使用更多功能扩展应用程序。

那么我该如何实现呢?

我从 django web 阅读了一些抽象模型的东西。但实际上,它们是静态的,硬编码在 *.py 文件中,而不是我想要的。

还有一个问题,对于静态模型(*.py 文件中的硬代码),它可以使用“manage.py syncdb”命令将模块字段同步到表字段,那么对于动态情况如何做到这一点?

4

1 回答 1

0

您想要的可能是使用 aForeignKey以便您可以将表链接到不同的用户:

class Expense(models.Model):
    pub_date = models.DateTimeField()
    amount = models.IntegerField()
    memo = models.TextField()
    user = models.ForeignKey(MyUserField)

显然,您需要MyUserField实施和导入。

然后,您可以从Expense表中访问用户

my_expense.user

或者Expense来自用户的表使用:

my_user.expense_set.all()

然后,您不需要为每个新用户运行 syncdb,并且它不是静态硬编码在文件中的。

于 2010-11-09T14:15:23.953 回答