我为费用应用程序
定义了费用模型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网上读过一些抽象的模型。但实际上,它们是静态,在* .py文件中进行硬编码,而不是我想要的。
还有一个问题,对于静态模型(* .py文件中的硬编码),它可以使用“manage.py syncdb”命令将模块字段同步到表字段,那么如何为动态执行此操作情况?
答案 0 :(得分:0)
您想要的可能是使用ForeignKey
,以便您可以将表格链接到不同的用户:
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,并且它在文件中不是静态硬编码的。