django - 如何将外键设置到另一个模型的字段?
问题描述
我想为另一个模型的字段设置外键。
我试过外键 to_field='field_name'
class Banks(models.Model):
name = models.TextField()
id = models.IntegerField(unique=True)
class Meta:
db_table = 'banks'
class Branches(models.Model):
ifsc = models.CharField(max_length=20, null=False)
bank_id = models.ForeignKey(Banks, to_field='id', on_delete=models.CASCADE)
branch = models.CharField(max_length=50)```
ProgrammingError: column branches.id does not exist
LINE 1: SELECT "branches"."id", "branches"."ifsc", "branches"."bank_...
解决方案
只需在 Banks 模型的名称列中添加 unique=True 即可。
class Banks(models.Model):
name = models.TextField(unique=True) # Just add unique=True
id = models.IntegerField(unique=True, primary_key=True)
class Meta:
db_table = 'banks'
class Branches(models.Model):
ifsc = models.CharField(max_length=20, null=False)
bank_id = models.ForeignKey(Banks, to_field='id', on_delete=models.CASCADE) # Now it will work
branch = models.CharField(max_length=50)
推荐阅读
- angular - 可以将属性传递给 Angular 中的元数据动画
- json - 在 Python 中使用(JSON 或 YAML)生成的数据值
- excel - DuckDuckGo Scraper,无法跳转到下一页
- jquery - 使用 jQuery 更改悬停和滚动徽标
- dart - 在 Dart 中使用 UNIX 套接字
- node.js - (Ffmpeg) 如何使用 Ffmpeg 从接收到的 UDP 数据包在浏览器中播放实时音频?
- c# - xamarin 项目中的 Nuget 降级警告
- video.js - 为什么我收到 VideoJs“i.tech_.playbackRate 不是函数”?
- genetic-algorithm - 遗传算法中基于锦标赛的选择的概率是多少?
- python - python异步循环每15秒发送一次udp有效负载,并在60秒后停止尝试