如何将数据添加到一对多关系字段?
模型结构在下面给出
我有两个模型,一个是Admin模型,另一个是App模型。
一个应用程序可能有多个管理员(应用程序1- u1,u2 ...作为应用程序管理员)
class Admin(models.Model):
email = models.EmailField()
class App(models.Model):
platform = models.IntegerField() # 1-iOS, 2-ANDROID
bundle = models.CharField(max_length=255)
admin = models.ForeignKey(Admin, on_delete=models.SET_NULL, null=True)
已尝试将管理员列表保存到应用程序,但在此模型结构下无法正常工作。
在您的情况下,管理员只能拥有一个APP,但是一个应用可以由多个管理员拥有。因此,每个管理员都需要引用他/她拥有的应用程序。
您需要引用他/她拥有的应用向管理模型添加外键。
class Admin(models.Model):
email = models.EmailField()
app = models.ForeignKey(App, on_delete=models.SET_NULL, null=True)
然后显然您需要从您的应用程序模型中删除admin的外键引用:
class App(models.Model):
platform = models.IntegerField() # 1-iOS, 2-ANDROID
bundle = models.CharField(max_length=255)
解决方案:
class Admin(models.Model):
email = models.EmailField()
app = models.ForeignKey(App, on_delete=models.SET_NULL, null=True)
class App(models.Model):
platform = models.IntegerField() # 1-iOS, 2-ANDROID
bundle = models.CharField(max_length=255)
现在1个应用可以具有多个管理员
您可以做的另一件事是:
Admin...
...
app = models.ForeignKey(App, on_delete=models.SET_NULL, null=True, related_name='admins')
...
So now you can query AppObject.admins.all() for admin of that AppObject