Tho*_*son 15 python mysql django
我有一个遗留数据库中的两个表,我想从Django站点访问.它们看起来像这样:
Table A
id (int, primary key)
name (string, unique)
...
Table B
id (int, primary key)
name
record_date
(name, record_date are unique together)
...
Run Code Online (Sandbox Code Playgroud)
如何告诉我的Django模型Table A与Bon有一对多的关系A.name=B.name?常规ForeignKey关系需要B使用A.id而不是name,但我无法修改现有遗留数据库的结构.
Ala*_*air 28
class B(models.Model):
name = models.ForeignKey(A, to_field="name", db_column="name")
Run Code Online (Sandbox Code Playgroud)
创建外键后,可以按如下方式访问值和相关实例:
>>> b = B.objects.get(id=1)
>>> b.name_id # the value stored in the 'name' database column
>>> b.name # the related 'A' instance
Run Code Online (Sandbox Code Playgroud)
小智 21
Django 的 models.ForeignKey 文档不是很清楚。如果您有两个模型反映在数据库中:
class Blockchain(models.Model):
symbol = models.CharField(max_length=50, primary_key=True, unique=True)
class Wallet(models.Model):
index = models.AutoField(primary_key=True)
wallet = models.CharField(max_length=100, null=True)
blockchain = models.ForeignKey(Blockchain, to_field="symbol", db_column="blockchain")
Run Code Online (Sandbox Code Playgroud)
“to_field”实际上是 Foreign 模型中字段的名称。
“db_column”是您想要在本地模型中将外键重命名为的字段的名称
| 归档时间: |
|
| 查看次数: |
6969 次 |
| 最近记录: |