Nim*_*hew 1 python django django-models
我有模型 trade/ Trade .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)
Run Code Online (Sandbox Code Playgroud)
模型主页/玩家.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)
Run Code Online (Sandbox Code Playgroud)
交易发生在 2 个Player之间。也就是说,Trade中的buyer和buyee字段是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)),
],
),
]
Run Code Online (Sandbox Code Playgroud)
为什么迁移中缺少 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |