【发布时间】:2021-03-08 11:43:25
【问题描述】:
我的 django 应用程序中的模型之间是否存在“交叉保存”的可能性?
例如:
models.py
class Person(models.Model):
first_name = models.CharField()
last_name = models.CharfFeld()
age = models.IntegerField()
value_person= models.IntegerField()
date_created = models.DateField
class Account():
name = models.CharField()
description = models.Textarea()
person = models.ForeignKey(Person, null=False, blank=False, on_delete=models.CASCADE)
value_a = models.IntegerField()
value_b = models.IntegerField()
date_created = models.DateField
forms.py:
class UpdateAccountForm(ModelForm):
class Meta:
model = Account
exclude = [
'name',
'date_created',
]
views.py:
[...]
account_db = Account.objects.get(id=pk)
form = UpdateAccountForm(instance=Account)
if request.method == 'POST':
form = CreateAccountForm(request.POST, instance=Account)
if form.is_valid():
form.save()
*** Do something here
return("Somehwere")
[...]
现在我问自己,是否有可能 - 在更新“帐户”时 - 更新“人员” - 例如 - 将两个“值_...”之一添加到“值_人” ?应该通过“外键”进行连接,对吗?我想我还应该提到,我说的是我的默认数据库! 我知道这可能是一个不好的例子,但这只是为了让我能够理解这背后的系统——希望是现有的——功能!
【问题讨论】:
-
是的,您应该能够通过查询 db 中与 Account 对象中的外键值匹配的 Person 对象,然后使用您的任何值更新该 Person 对象来更新链接到该帐户的人员想要。