Django - 更新数据库中具有此值的每个字段
Django - Update each field in the database that have this value
假设我有两个 tables:
table#1: Space
table#2:学生
如果我想更改 prom_name 形式 table#1,我也想自动更新 table#2 中的 prom_name
我的学生模型是一个表格,学生在其中插入他们的名字和 prom_code(给定),如果 prom_code 不存在则拒绝注册
class Space(model.Models):
prom_name = models.CharField(max_length = 20)
prom_code = models.CharField(max_length = 20, Default=RANDOM, editable=FALSE)
def save(self):
try:
From my_other_app.models import Students
myobj = Students.object.get(prom_code = self.prom_code)
myobj.prom_name = self.prom_name
myobj.save()
except Students.DoesNotExist:
super(Space, self).save()
这只是我正在尝试做的一个简单示例,原始示例已经验证寄存器是否是新的,因此
我只是不知道如何从我的 table 中的每个 prom_code = self.prom_code(我正在更改的那个)更改我所有的 prom_name学生
我需要使用 for 循环吗?
此致,
您的设计不符合2nd normal form。 Prom_name
应该只存在于table Space
中,不存在于Students
中,因为存储冗余字段只会增加额外的磁盘space,增加维护工作。你刚刚描述的。
您应该从 Students
table 中删除 Prom_name
列,并在需要使用 Space
table 获取名称时进行连接。
您可以通过以下方式规范化您的数据库(通过更改模型):
table#1: Space
Prom_code | Prom_name
789 Prom1
800 Prom5
471 Prom3
table#2:学生
Name | ID | Prom_code
John 1 789
Martha 2 789
Ramsy 3 800
Bob 4 471
Debbys 5 789
Prom_code在Studentstable是一个外键参考Prom_code在Spacetable.
假设我有两个 tables:
table#1: Space
table#2:学生
如果我想更改 prom_name 形式 table#1,我也想自动更新 table#2 中的 prom_name
我的学生模型是一个表格,学生在其中插入他们的名字和 prom_code(给定),如果 prom_code 不存在则拒绝注册
class Space(model.Models):
prom_name = models.CharField(max_length = 20)
prom_code = models.CharField(max_length = 20, Default=RANDOM, editable=FALSE)
def save(self):
try:
From my_other_app.models import Students
myobj = Students.object.get(prom_code = self.prom_code)
myobj.prom_name = self.prom_name
myobj.save()
except Students.DoesNotExist:
super(Space, self).save()
这只是我正在尝试做的一个简单示例,原始示例已经验证寄存器是否是新的,因此
我只是不知道如何从我的 table 中的每个 prom_code = self.prom_code(我正在更改的那个)更改我所有的 prom_name学生
我需要使用 for 循环吗?
此致,
您的设计不符合2nd normal form。 Prom_name
应该只存在于table Space
中,不存在于Students
中,因为存储冗余字段只会增加额外的磁盘space,增加维护工作。你刚刚描述的。
您应该从 Students
table 中删除 Prom_name
列,并在需要使用 Space
table 获取名称时进行连接。
您可以通过以下方式规范化您的数据库(通过更改模型):
table#1: Space
Prom_code | Prom_name
789 Prom1
800 Prom5
471 Prom3
table#2:学生
Name | ID | Prom_code
John 1 789
Martha 2 789
Ramsy 3 800
Bob 4 471
Debbys 5 789
Prom_code在Studentstable是一个外键参考Prom_code在Spacetable.