python - 如何在另一个表的特定属性上设置 ForeignKey?
问题描述
这是我的头等舱 Klant,意思是客户。它有一个 id、一个客户名称和来自客户的用户,这是一个 ManyToManyField,指的是 django 给我的 User-table 中的用户。
class Klant(models.Model):
id = models.AutoField(primary_key=True)
klant_naam = models.CharField(max_length=100, default='-')
klant_gebruiker = models.ManyToManyField(User)
def __str__(self):
return str(self.id) + " - " + self.klant_naam
这是 Actie 类(动作或用户确定的动作),它有一个 id、一个动作名称、一个动作发布日期、一个结束日期(截止日期)、一个引用 Klant 和 actie_gebruiker 的客户 ID我想从 Klant 表中引用 klant_gebruiker。
class Actie(models.Model):
id = models.AutoField(primary_key=True)
actie_naam = models.CharField(max_length=150, default='-')
actie_aanmaakdatum = models.DateTimeField(default=datetime.now())
actie_einddatum = models.DateTimeField(default=datetime.now() + timedelta(days=1))
actie_klant = models.ForeignKey(Klant, default=1)
actie_gebruiker = models.ForeignKey(Klant.klant_gebruiker, default=1)
def __str__(self):
return str(self.id) + " - " + self.actie_naam
所以我现在的问题是我必须做什么才能将 actie_gebruiker 的值设置为 Klant 表中的属性 klant_gebruiker?
解决方案
我相信您需要使用through
ManyToManyField 定义的参数。
class Klant(models.Model):
id = models.AutoField(primary_key=True)
klant_naam = models.CharField(max_length=100, default='-')
klant_gebruiker = models.ManyToManyField(User, through='Actie')
def __str__(self):
return str(self.id) + " - " + self.klant_naam
class Actie(models.Model):
id = models.AutoField(primary_key=True)
actie_naam = models.CharField(max_length=150, default='-')
actie_aanmaakdatum = models.DateTimeField(default=datetime.now())
actie_einddatum = models.DateTimeField(default=datetime.now() + timedelta(days=1))
actie_klant = models.ForeignKey(Klant)
actie_gebruiker = models.ForeignKey(User)
def __str__(self):
return str(self.id) + " - " + self.actie_naam
推荐阅读
- openshift - 无法使用来自 openshift 内部注册表的图像创建新应用程序
- python - 如何使一张图像的渐变外观与另一张图像相同?
- amazon-web-services - 保护网站管理面板访问的选项 - 只有受信任的用户才能访问它
- iptables - 如何通过 iptables 阻止 FIN-WAIT-2?
- javascript - 在聊天应用程序中获取最新消息 - Django
- nginx - Nginx 反向代理到两个服务
- java - 尝试使用 apache POI 从 excel 表中检索数据
- php - (PHP) 试图控制包含函数
- r - R ggplot2 geom_bar barplot:在不修改数据框的情况下按计数对条形图进行排序,并且因子标签具有含义
- python-datetime - 通过排除 pandas 数据框中的非营业时间来计算两个日期之间的营业时间