Created
February 17, 2017 00:12
-
-
Save marfire/44822f94af25f11a2fda5beba2593229 to your computer and use it in GitHub Desktop.
Access the openfootball database from Django
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file was originally auto-generated by Django's inspectdb command. | |
# The following changes were made manually: | |
# | |
# - Made the ids AutoFields (since they are defined as AUTOINCREMENT) | |
# - Renamed models to be singular | |
# - Added verbose_name_plural if necessary | |
# - Added ForeignKeys | |
# - Removed _id suffix on field name | |
# - Added target model | |
# - Added on_delete argument based on whether or not NULL is allowed | |
# - Added related_names | |
# - Set db_index, etc. based on the presence of indexes | |
# - Added ManyToManyFields | |
# - Only added related_name if there was extra information in the table | |
# - Rearranged the order of models | |
# - Added field defaults | |
# - In a few cases, and based on the actual data, changed TextFields to limited-length CharFields | |
# - Usage.percent was interpreted by inspectdb as a TextField. Changed to FloatField. | |
# | |
# References | |
# - https://openfootball.github.io/schema/ | |
# - https://github.com/openfootball/schema.sql/blob/master/NOTES.md | |
from django.db import models | |
class Place(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
kind = models.TextField() | |
lat = models.TextField(blank=True, null=True) | |
lng = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "places" | |
class Continent(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
slug = models.TextField() | |
key = models.CharField(max_length=2, unique=True) | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="continents") | |
alt_names = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "continents" | |
class Country(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
slug = models.TextField() | |
key = models.TextField(unique=True) | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="countries") | |
code = models.TextField(unique=True) | |
alt_names = models.TextField(blank=True, null=True) | |
hist_names = models.TextField(blank=True, null=True) | |
pop = models.IntegerField() | |
area = models.IntegerField() | |
continent = models.ForeignKey(Continent, models.SET_NULL, blank=True, null=True, db_index=False, related_name="countries") | |
country = models.ForeignKey("self", models.SET_NULL, blank=True, null=True, db_index=False, related_name="territories") # Seems to be used for territories with parent countries. | |
s = models.BooleanField(default=False) | |
c = models.BooleanField(default=False) | |
d = models.BooleanField(default=False) | |
m = models.BooleanField(default=False) | |
motor = models.TextField(blank=True, null=True) | |
alpha2 = models.TextField(blank=True, null=True) | |
alpha3 = models.TextField(blank=True, null=True) | |
num = models.TextField(blank=True, null=True) | |
fifa = models.TextField(blank=True, null=True) | |
ioc = models.TextField(blank=True, null=True) | |
fips = models.TextField(blank=True, null=True) | |
net = models.TextField(blank=True, null=True) | |
wikipedia = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "countries" | |
verbose_name_plural = "countries" | |
class State(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="states") | |
code = models.TextField(blank=True, null=True) | |
abbr = models.TextField(blank=True, null=True) | |
iso = models.TextField(blank=True, null=True) | |
nuts = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="states") | |
level = models.IntegerField(default=1) | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "states" | |
unique_together = (("key", "country"),) | |
class Part(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="parts") | |
code = models.TextField(blank=True, null=True) | |
abbr = models.TextField(blank=True, null=True) | |
iso = models.TextField(blank=True, null=True) | |
nuts = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
state = models.ForeignKey(State, models.CASCADE, db_index=False, related_name="parts") | |
level = models.IntegerField(default=2) | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "parts" | |
class County(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="counties") | |
code = models.TextField(blank=True, null=True) | |
abbr = models.TextField(blank=True, null=True) | |
iso = models.TextField(blank=True, null=True) | |
nuts = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
state = models.ForeignKey(State, models.CASCADE, db_index=False, related_name="counties") | |
part = models.ForeignKey(Part, models.SET_NULL, blank=True, null=True, db_index=False, related_name="counties") | |
level = models.IntegerField(default=2) | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "counties" | |
verbose_name_plural = "counties" | |
class Muni(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="munis") | |
code = models.TextField(blank=True, null=True) | |
abbr = models.TextField(blank=True, null=True) | |
iso = models.TextField(blank=True, null=True) | |
nuts = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
state = models.ForeignKey(State, models.CASCADE, db_index=False, related_name="munis") | |
county = models.ForeignKey(County, models.SET_NULL, blank=True, null=True, db_index=False, related_name="munis") | |
level = models.IntegerField(default=3) | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "munis" | |
class Metro(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="metros") | |
code = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="metros") | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "metros" | |
class City(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="cities") | |
code = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="cities") | |
state = models.ForeignKey(State, models.SET_NULL, blank=True, null=True, db_index=False, related_name="cities") | |
part = models.ForeignKey(Part, models.SET_NULL, blank=True, null=True, db_index=False, related_name="cities") | |
county = models.ForeignKey(County, models.SET_NULL, blank=True, null=True, db_index=False, related_name="cities") | |
muni = models.ForeignKey(Muni, models.SET_NULL, blank=True, null=True, db_index=False, related_name="cities") | |
metro = models.ForeignKey(Metro, models.SET_NULL, blank=True, null=True, db_index=False, related_name="cities") | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "cities" | |
verbose_name_plural = "cities" | |
class District(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
key = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="districts") | |
code = models.TextField(blank=True, null=True) | |
alt_names = models.TextField(blank=True, null=True) | |
city = models.ForeignKey(City, models.CASCADE, db_index=False, related_name="districts") | |
pop = models.IntegerField(blank=True, null=True) | |
area = models.IntegerField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "districts" | |
class Assoc(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField(unique=True) | |
title = models.TextField() | |
since = models.IntegerField(blank=True, null=True) | |
web = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.SET_NULL, blank=True, null=True, db_index=False, related_name="assocs") | |
national = models.BooleanField(default=False) | |
continental = models.BooleanField(default=False) | |
intercontinental = models.BooleanField(default=False) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
descendants = models.ManyToManyField("self", symmetrical=False, through="AssocAssoc", through_fields=("assoc1", "assoc2"), related_name="ancestors") | |
class Meta: | |
managed = False | |
db_table = "assocs" | |
# Used to represent ancestor relationships (e.g. FIFA is the ancestor of all other associations) | |
class AssocAssoc(models.Model): | |
id = models.AutoField(primary_key=True) | |
assoc1 = models.ForeignKey(Assoc, models.CASCADE, db_index=True, related_name="+") | |
assoc2 = models.ForeignKey(Assoc, models.CASCADE, db_index=True, related_name="+") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "assocs_assocs" | |
unique_together = (("assoc1", "assoc2"),) | |
class Team(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.CharField(max_length=3, unique=True) | |
title = models.TextField() | |
title2 = models.TextField(blank=True, null=True) | |
code = models.CharField(max_length=3, blank=True, null=True) | |
synonyms = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="teams") | |
city = models.ForeignKey(City, models.SET_NULL, blank=True, null=True, db_index=False, related_name="teams") | |
club = models.BooleanField(default=False) # "basically a reverse copy of the national flag and, thus, redundant" | |
since = models.IntegerField(blank=True, null=True) | |
address = models.TextField(blank=True, null=True) | |
web = models.TextField(blank=True, null=True) | |
assoc = models.ForeignKey(Assoc, models.SET_NULL, blank=True, null=True, db_index=False, related_name="teams") | |
national = models.BooleanField(default=False) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "teams" | |
class League(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
title = models.TextField() | |
country = models.ForeignKey(Country, models.SET_NULL, blank=True, null=True, db_index=False, related_name="leagues") | |
club = models.BooleanField(default=False) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "leagues" | |
class Season(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
title = models.TextField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "seasons" | |
class Ground(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField(unique=True) | |
title = models.TextField() | |
synonyms = models.TextField(blank=True, null=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="grounds") | |
city = models.ForeignKey(City, models.SET_NULL, blank=True, null=True, db_index=False, related_name="grounds") | |
since = models.IntegerField(blank=True, null=True) | |
capacity = models.IntegerField(blank=True, null=True) | |
address = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "grounds" | |
class Event(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField(unique=True) | |
league = models.ForeignKey(League, models.CASCADE, db_index=False, related_name="events") | |
season = models.ForeignKey(Season, models.CASCADE, db_index=False, related_name="events") | |
start_at = models.DateField() | |
end_at = models.DateField(blank=True, null=True) | |
team3 = models.BooleanField(default=True) # This should be False if it's a knockout event with no 3rd place match | |
sources = models.TextField(blank=True, null=True) | |
config = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
grounds = models.ManyToManyField(Ground, through="EventGround", related_name="events") | |
teams = models.ManyToManyField(Team, through="EventTeam", related_name="events") | |
class Meta: | |
managed = False | |
db_table = "events" | |
class EventGround(models.Model): | |
id = models.AutoField(primary_key=True) | |
event = models.ForeignKey(Event, models.CASCADE, db_index=True, related_name="+") | |
ground = models.ForeignKey(Ground, models.CASCADE, db_index=False, related_name="+") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "events_grounds" | |
unique_together = (("event", "ground"),) | |
class EventTeam(models.Model): | |
id = models.AutoField(primary_key=True) | |
event = models.ForeignKey(Event, models.CASCADE, db_index=True, related_name="+") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="+") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "events_teams" | |
unique_together = (("event", "team"),) | |
class EventStanding(models.Model): | |
id = models.AutoField(primary_key=True) | |
event = models.ForeignKey(Event, models.CASCADE, db_index=False, related_name="event_standings") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
teams = models.ManyToManyField(Team, through="EventStandingEntry", related_name="event_standings") | |
class Meta: | |
managed = False | |
db_table = "event_standings" | |
class EventStandingEntry(models.Model): | |
id = models.AutoField(primary_key=True) | |
event_standing = models.ForeignKey(EventStanding, models.CASCADE, db_index=False, related_name="event_standing_entries") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="event_standing_entries") | |
pos = models.IntegerField(blank=True, null=True) | |
played = models.IntegerField(blank=True, null=True) | |
won = models.IntegerField(blank=True, null=True) | |
lost = models.IntegerField(blank=True, null=True) | |
drawn = models.IntegerField(blank=True, null=True) | |
goals_for = models.IntegerField(blank=True, null=True) | |
goals_against = models.IntegerField(blank=True, null=True) | |
pts = models.IntegerField(blank=True, null=True) | |
comments = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "event_standing_entries" | |
verbose_name_plural = "event standing entries" | |
class Round(models.Model): | |
id = models.AutoField(primary_key=True) | |
event = models.ForeignKey(Event, models.CASCADE, db_index=True, related_name="rounds") | |
title = models.TextField() | |
title2 = models.TextField(blank=True, null=True) | |
pos = models.IntegerField() | |
knockout = models.BooleanField(default=False) | |
start_at = models.DateField() | |
end_at = models.DateField(blank=True, null=True) | |
auto = models.BooleanField(default=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "rounds" | |
class Group(models.Model): | |
id = models.AutoField(primary_key=True) | |
event = models.ForeignKey(Event, models.CASCADE, db_index=True, related_name="groups") | |
title = models.TextField() | |
pos = models.IntegerField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
teams = models.ManyToManyField(Team, through="GroupTeam", related_name="groups") | |
class Meta: | |
managed = False | |
db_table = "groups" | |
class GroupTeam(models.Model): | |
id = models.AutoField(primary_key=True) | |
group = models.ForeignKey(Group, models.CASCADE, db_index=True, related_name="+") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="+") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "groups_teams" | |
unique_together = (("group", "team"),) | |
class GroupStanding(models.Model): | |
id = models.AutoField(primary_key=True) | |
group = models.ForeignKey(Group, models.CASCADE, db_index=False, related_name="group_standings") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
teams = models.ManyToManyField(Team, through="GroupStandingEntry", related_name="group_standings") | |
class Meta: | |
managed = False | |
db_table = "group_standings" | |
class GroupStandingEntry(models.Model): | |
id = models.AutoField(primary_key=True) | |
group_standing = models.ForeignKey(GroupStanding, models.CASCADE, db_index=False, related_name="group_standing_entries") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="group_standing_entries") | |
pos = models.IntegerField(blank=True, null=True) | |
played = models.IntegerField(blank=True, null=True) | |
won = models.IntegerField(blank=True, null=True) | |
lost = models.IntegerField(blank=True, null=True) | |
drawn = models.IntegerField(blank=True, null=True) | |
goals_for = models.IntegerField(blank=True, null=True) | |
goals_against = models.IntegerField(blank=True, null=True) | |
pts = models.IntegerField(blank=True, null=True) | |
comments = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "group_standing_entries" | |
verbose_name_plural = "group standing entries" | |
class Game(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField(unique=True, blank=True, null=True) | |
round = models.ForeignKey(Round, models.CASCADE, db_index=True, related_name="games") | |
pos = models.IntegerField() | |
group = models.ForeignKey(Group, models.SET_NULL, blank=True, null=True, db_index=True, related_name="games") | |
team1 = models.ForeignKey(Team, models.CASCADE, db_index=True, related_name="games_as_team1") | |
team2 = models.ForeignKey(Team, models.CASCADE, db_index=True, related_name="games_as_team2") | |
play_at = models.DateTimeField() | |
postponed = models.BooleanField(default=False) | |
play_at_v2 = models.DateTimeField(blank=True, null=True) | |
play_at_v3 = models.DateTimeField(blank=True, null=True) | |
ground = models.ForeignKey(Ground, models.SET_NULL, blank=True, null=True, db_index=False, related_name="games") | |
city = models.ForeignKey(City, models.SET_NULL, blank=True, null=True, db_index=False, related_name="games") | |
knockout = models.BooleanField(default=False) | |
home = models.BooleanField(default=True) | |
score1 = models.IntegerField(blank=True, null=True) | |
score2 = models.IntegerField(blank=True, null=True) | |
score1et = models.IntegerField(blank=True, null=True) | |
score2et = models.IntegerField(blank=True, null=True) | |
score1p = models.IntegerField(blank=True, null=True) | |
score2p = models.IntegerField(blank=True, null=True) | |
score1i = models.IntegerField(blank=True, null=True) | |
score2i = models.IntegerField(blank=True, null=True) | |
score1ii = models.IntegerField(blank=True, null=True) | |
score2ii = models.IntegerField(blank=True, null=True) | |
next_game = models.ForeignKey("self", models.SET_NULL, blank=True, null=True, db_index=True, related_name="prev_games") | |
prev_game = models.ForeignKey("self", models.SET_NULL, blank=True, null=True, db_index=True, related_name="next_games") | |
winner = models.IntegerField(blank=True, null=True) # 0 is a tie, 1 is team1, and 2 is team2 | |
winner90 = models.IntegerField(blank=True, null=True) # same as winner but after 90 minutes | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "games" | |
class Person(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
name = models.TextField() | |
synonyms = models.TextField(blank=True, null=True) | |
code = models.TextField(blank=True, null=True) | |
born_at = models.DateField(blank=True, null=True) | |
city = models.ForeignKey(City, models.SET_NULL, blank=True, null=True, db_index=False, related_name="persons") | |
state = models.ForeignKey(State, models.SET_NULL, blank=True, null=True, db_index=False, related_name="persons") | |
country = models.ForeignKey(Country, models.SET_NULL, blank=True, null=True, db_index=False, related_name="persons") | |
nationality_id = models.IntegerField(blank=True, null=True) # ForeignKey to Country? No data, so can't tell. | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "persons" | |
class Goal(models.Model): | |
id = models.AutoField(primary_key=True) | |
person = models.ForeignKey(Person, models.CASCADE, db_index=False, related_name="goals") | |
game = models.ForeignKey(Game, models.CASCADE, db_index=False, related_name="goals") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="goals") | |
minute = models.IntegerField(blank=True, null=True) | |
offset = models.IntegerField(default=0) # the number of minutes into extra time when the goal was scored | |
score1 = models.IntegerField(blank=True, null=True) | |
score2 = models.IntegerField(blank=True, null=True) | |
penalty = models.BooleanField(default=False) | |
owngoal = models.BooleanField(default=False) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "goals" | |
class Roster(models.Model): | |
id = models.AutoField(primary_key=True) | |
person = models.ForeignKey(Person, models.CASCADE, db_index=False, related_name="rosters") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="rosters") | |
event = models.ForeignKey(Event, models.SET_NULL, blank=True, null=True, db_index=False, related_name="rosters") | |
pos = models.IntegerField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "rosters" | |
class AlltimeStanding(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
title = models.TextField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
teams = models.ManyToManyField(Team, through="AlltimeStandingEntry", related_name="alltime_standings") | |
class Meta: | |
managed = False | |
db_table = "alltime_standings" | |
class AlltimeStandingEntry(models.Model): | |
id = models.AutoField(primary_key=True) | |
alltime_standing = models.ForeignKey(AlltimeStanding, models.CASCADE, db_index=False, related_name="alltime_standing_entries") | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="alltime_standing_entries") | |
pos = models.IntegerField(blank=True, null=True) | |
played = models.IntegerField(blank=True, null=True) | |
won = models.IntegerField(blank=True, null=True) | |
lost = models.IntegerField(blank=True, null=True) | |
drawn = models.IntegerField(blank=True, null=True) | |
goals_for = models.IntegerField(blank=True, null=True) | |
goals_against = models.IntegerField(blank=True, null=True) | |
pts = models.IntegerField(blank=True, null=True) | |
recs = models.IntegerField(blank=True, null=True) | |
comments = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "alltime_standing_entries" | |
verbose_name_plural = "alltime standing entries" | |
class Badge(models.Model): | |
id = models.AutoField(primary_key=True) | |
team = models.ForeignKey(Team, models.CASCADE, db_index=False, related_name="badges") | |
league = models.ForeignKey(League, models.CASCADE, db_index=False, related_name="badges") | |
season = models.ForeignKey(Season, models.CASCADE, db_index=False, related_name="badges") | |
title = models.TextField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "badges" | |
class CountryCode(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
kind = models.TextField() | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="country_codes") | |
class Meta: | |
managed = False | |
db_table = "country_codes" | |
unique_together = (("name", "kind"),) | |
class Lang(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
name = models.TextField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "langs" | |
class Log(models.Model): | |
id = models.AutoField(primary_key=True) | |
msg = models.TextField() | |
level = models.TextField() | |
app = models.TextField(blank=True, null=True) | |
tag = models.TextField(blank=True, null=True) | |
pid = models.IntegerField(blank=True, null=True) | |
tid = models.TextField(blank=True, null=True) | |
ts = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "logs" | |
class Name(models.Model): | |
id = models.AutoField(primary_key=True) | |
name = models.TextField() | |
place = models.ForeignKey(Place, models.CASCADE, db_index=False, related_name="names") | |
place_kind = models.TextField() | |
lang = models.TextField(default="en") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "names" | |
class Prop(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField() | |
value = models.TextField() | |
kind = models.TextField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "props" | |
class Tag(models.Model): | |
id = models.AutoField(primary_key=True) | |
key = models.TextField(unique=True) | |
slug = models.TextField() | |
name = models.TextField(blank=True, null=True) | |
grade = models.IntegerField(default=1) | |
parent = models.ForeignKey("self", models.SET_NULL, blank=True, null=True, db_index=False, related_name="children") | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "tags" | |
# taggable_id and taggable_type essentially define a generic key, though not | |
# in the format that Django uses. | |
class Tagging(models.Model): | |
id = models.AutoField(primary_key=True) | |
tag = models.ForeignKey(Tag, models.CASCADE, db_index=True, related_name="taggings") | |
taggable_id = models.IntegerField() | |
taggable_type = models.TextField() | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "taggings" | |
index_together = (("taggable_id", "taggable_type"),) | |
unique_together = (("taggable_id", "taggable_type", "tag"),) | |
class Usage(models.Model): | |
id = models.AutoField(primary_key=True) | |
country = models.ForeignKey(Country, models.CASCADE, db_index=False, related_name="usages") | |
lang = models.ForeignKey(Lang, models.CASCADE, db_index=False, related_name="usages") | |
official = models.BooleanField(default=True) | |
minor = models.BooleanField(default=False) | |
percent = models.FloatField(blank=True, null=True) | |
created_at = models.DateTimeField(blank=True, null=True) | |
updated_at = models.DateTimeField(blank=True, null=True) | |
class Meta: | |
managed = False | |
db_table = "usages" | |
class Zone(models.Model): | |
id = models.AutoField(primary_key=True) | |
class Meta: | |
managed = False | |
db_table = "zones" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For more information, including installation instructions, see Using football.db with Python and Django.