如何在Django应用程序中向数据库添加新表

时间:2017-01-20 13:48:25

标签: django database

我正在处理Django项目,我需要某些用户能够从应用程序管理面板向现有数据库添加新表。由于我不知道用户希望随着时间的推移添加到应用程序的产品的特殊性,我需要一种方法让他们只需点击"添加新类别"这将成为数据库中新表的名称,并在内部添加类别参数(数据库中的列名),然后单击"保存"它会在运行的应用程序中将这样的表添加到数据库中,而其他类别的用户将能够通过提供"类别参数的数据来添加产品到该类别中。

由于我不知道如何在django中做到这一点,我请求你的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您不想为每个类别添加新表。相反,使用Product模型和Category模型的外键:

class Category(models.Model):
    name =  models.CharField(max_length=100)

class Product(models.Model):
    name = models.CharField(max_length=100)
    category =  models.ForeignKey(Category, on_delete=models.PROTECT)

这样,添加新的“表”只需在Category表中输入新行即可。如果要将类别限制为用户,则可以在created_by模型上添加Category字段,并在其上建立访问逻辑。

请注意,外键上的on_delete=models.PROTECT表示只要仍有产品使用该类别,您就无法删除该类别。