У меня есть серия родственных моделей.Страна -> Лига -> Команда -> Игрок.Модель отлично работает, связывая страну с лигой и лигу с командой, но идентификатор команды отличается, так как команды играют более чем в одном соревновании.Чтобы справиться с этим, я добавил столбец ref с идентификатором для каждой команды.Я хотел бы использовать этот столбец ref в качестве внешнего ключа в моей модели проигрывателя, но я получаю ошибки, когда пытаюсь проанализировать данные в базе данных Postgres.
Я пытался использовать to_field и unique = Trueно все равно в конечном итоге с ошибкой.Я осмотрелся вокруг, но пока не нашел решения.
Вот код моей модели:
from django.conf import settings
from django.db import models
from django.utils import timezone
import datetime
class Country(models.Model):
objects = models.Manager()
name = models.CharField(max_length=50,default="TBA")
id = models.IntegerField(primary_key=True,default=0)
def __str__(self):
return self.name
def __unicode__(self):
return u'%s' % self.name
class League(models.Model):
objects = models.Manager()
name = models.CharField(max_length=100,default="TBA")
id = models.IntegerField(primary_key=True,default=0)
country = models.ForeignKey(Country,on_delete=models.CASCADE)
def __str__(self):
return self.name
def __unicode__(self):
return u'%s' % self.name
class Team(models.Model):
objects = models.Manager()
name = models.CharField(max_length=100,default="TBA")
id = models.IntegerField(primary_key=True,default=0)
league = models.ForeignKey(League,on_delete=models.CASCADE)
ref = models.IntegerField(default=0)
def __str__(self):
return self.name
def __unicode__(self):
return u'%s' % self.name
class Player(models.Model):
objects = models.Manager()
name = models.CharField(max_length=64)
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=64,default="Unknown")
last_name = models.CharField(max_length=64,default="Unknown")
nationality = models.CharField(max_length=64,default="Unknown")
date_of_birth = models.DateField(default = datetime.date.today)
position = models.CharField(max_length=64, default="Unknown")
team_ref =models.ForeignKey(Team,to_field="ref",on_delete=models.CASCADE)
def __str__(self):
return self.name