There is something in my models.py that breaks makemigrations.
The field "rank" is missing from "CharacterSkill". Also, if I uncomment
any of the three classes that refer to "Character" the "game" and "player"
fields become separate items in the migrations file.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/0de00b05-f1ba-4be8-92eb-1110cd6ba458n%40googlegroups.com.
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
# Create your models here.
class Skill(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
overcome = models.BooleanField(default=True)
advantage = models.BooleanField(default=True)
attack = models.BooleanField(default=False)
defend = models.BooleanField(default=False)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class Setting(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class SettingSkill(models.Model):
setting = models.ForeignKey(Setting, on_delete=models.CASCADE)
skill = models.ManyToManyField(Skill)
def __str__(self):
associated = ", ".join(str(seg) for seg in self.skill.all())
return "{}: {}".format(self.setting, associated)
class Game(models.Model):
gm = models.ForeignKey(User, on_delete=models.CASCADE)
players = models.ManyToManyField(User, related_name='player')
setting = models.ForeignKey(Setting, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse('game-detail', kwargs={'pk': self.pk})
def __str__(self):
return "{}; a {} game".format(self.name, self.setting)
class Character(models.Model):
game = models.ForeignKey(Game, models.SET_NULL, blank=True, null=True)
player = models.ForeignKey(User, models.SET_NULL, blank=True, null=True)
name = models.CharField(max_length=200)
concept = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse('character-detail', kwargs={'pk': self.pk})
def __str__(self):
return self.name
# class CharacterAspect(models.Model):
# description = models.CharField(max_length=2000)
# character = models.ForeignKey(Character, on_delete=models.CASCADE)
class CharacterSkill(models.Model):
character = models.ForeignKey(Character, on_delete=models.CASCADE)
skill = models.ForeignKey(Skill, on_delete=models.RESTRICT)
rank = models.SmallIntegerField
def __str__(self):
return self.skill.name
#class CharacterStunt(models.Model):
# character = models.ForeignKey(Character, on_delete=models.CASCADE)
# name = models.CharField(max_length=200)
# description = models.CharField(max_length=2000)
# skill = models.ForeignKey(Skill, blank=True, null=True, on_delete=models.RESTRICT)
#
# class Meta:
# ordering = ['name']
#
# def __str__(self):
# return self.name
# Generated by Django 4.0.4 on 2022-06-20 10:37
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Character',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200)),
('concept', models.CharField(max_length=200)),
],
),
migrations.CreateModel(
name='Setting',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200)),
('description', models.CharField(max_length=2000)),
],
options={
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Skill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200)),
('description', models.CharField(max_length=2000)),
('overcome', models.BooleanField(default=True)),
('advantage', models.BooleanField(default=True)),
('attack', models.BooleanField(default=False)),
('defend', models.BooleanField(default=False)),
],
options={
'ordering': ['name'],
},
),
migrations.CreateModel(
name='SettingSkill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('setting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fatesheet.setting')),
('skill', models.ManyToManyField(to='fatesheet.skill')),
],
),
migrations.CreateModel(
name='Game',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200)),
('gm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('players', models.ManyToManyField(related_name='player', to=settings.AUTH_USER_MODEL)),
('setting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fatesheet.setting')),
],
),
migrations.CreateModel(
name='CharacterSkill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fatesheet.character')),
('skill', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='fatesheet.skill')),
],
),
migrations.AddField(
model_name='character',
name='game',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='fatesheet.game'),
),
migrations.AddField(
model_name='character',
name='player',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
),
]