python - 迁移中缺少外键
问题描述
我有模型交易/交易.py:
from datetime import datetime
from django.db import models
from home.models import Player
class Trade(models.Model):
buyer = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='buyer'),
buyee = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='buyee'),
date = models.DateTimeField(default=datetime.now)
样板房/播放器.py:
from django.contrib.auth.models import User
from django.db import models
class Player(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, related_name='user')
value = models.IntegerField(default=1500)
owner = models.OneToOneField(User, on_delete=models.CASCADE, related_name='owner', blank=True, null=True)
交易发生在 2 个Player之间。也就是说,Trade中的买方和买方字段是Player的外键。
现在,当我为Trade模型进行迁移时,这就是我得到的:
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Trade',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateTimeField(default=datetime.datetime.now)),
],
),
]
为什么迁移中缺少 2 个外键字段?
解决方案
这是由于Trade
类中每个字段末尾的逗号造成的。删除逗号,它将起作用。
class Trade(models.Model):
buyer = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='buyer')
buyee = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='buyee')
date = models.DateTimeField(default=datetime.now)
推荐阅读
- node.js - 错误:未能将一些参考资料推送到“https://git.heroku.com/readingcom.git”
- java - 在 WebView 上选择后,文件上传未获取文件路径
- javascript - 角度 7 路由器导航无法匹配
- react-native - 使用 NetInfo 时自动调用 onPress - 本机反应
- c - 如何根据主变量拥有一定数量的变量
- javascript - 如何检测元素中任何位置的按键向上/向下事件?
- python - Cython:如何加速递归函数?
- salesforce - 如何在 Salesforce 社区中创建包含用户列表的页面?
- json - Flutter 异常错误处理 Google Apps 脚本生成的 json
- java - 如何在 Ubuntu 20.04 上安装 JavaFX