如何在mod中使用compositeForwardKey

2024-05-16 14:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当虚拟环境处于活动状态时,我已经在Anaconda cmd接口中使用pip安装了django复合foreignkey。在

当我像这样使用CompositeForeKey时:

PersOrg = CompositeForeignKey(Organisation, on_delete=CASCADE, to_fields={'ClientId', 'OrgCode'})

我得到错误:NameError:未定义名称“compositeForeKey”

我试过:

^{2}$

但是得到错误:import django composite foreignkey^ SyntaxError:无效语法。在

如何使模型知道compositeForeKey的存在?或者有更好的方法来引用多字段外键。在

我有一个数据库,多个客户将在其中注册,例如定义他们自己在组织中工作的员工。在

通常,模型将具有以下定义:

class Person(models.Model):
ClientId = models.ForeignKey('clients.Client', on_delete=models.CASCADE,
                             to_field='id')
PersNumber = models.PositiveIntegerField(null=False)
PersSurName = models.CharField(max_length=40, null=False)
PersNames = models.CharField(max_length=40, null=False)
PersIsStaff = models.BooleanField(null=False)
PersMobile = models.CharField(max_length=13)
PersWork = models.CharField(max_length=13, blank=True)
PersEmail = models.EmailField(max_length= 80, blank=True)
PersWorkTitle = models.CharField(max_length=40)
PersOrg = CompositeForeignKey(Organisation, on_delete=CASCADE,
                                to_fields={'ClientId', 'OrgCode'})

class Meta:
    unique_together = (('ClientId', 'PersNumber'),)

def __str__(self):
    """Return a string representation of the model"""
    return str(self.PersNumber) + ' - ' + self.PersSurName + ' - ' + self.PersNames

在每个模型中,都有一个客户机id和一个(或多个)其他字段是唯一的。在

在上面的例子中,PersOrg字段是表“organization”的外键,其中字段“ClientId”、“OrgCode”定义外键。在

这个问题已经在这个论坛上被问到并得到了回答,但是我无法让compositeforewekey工作。在

我们将感激您的帮助

谨致问候

Phlip公司


Tags: to模型selffalseonmodelsdeletenull
1条回答
网友
1楼 · 发布于 2024-05-16 14:34:46

django-composite-foreignkey是项目的名称,但是Python包的名称是compositefk,可以在test app中看到。所以你的进口应该是:

from compositefk.fields import CompositeForeignKey

我认为这是一个很奇怪的错误,但是看看the documentation它们从来没有真正显示导入,所以我认为公平地说,文档让您失望了。在

请注意,Python标识符不能包含-,这就是为什么会出现语法错误。在

相关问题 更多 >