diff --git a/WSR/migrations/0001_initial.py b/WSR/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..f0e0af190cf20cbaf75c11c1e0496e80d250a648 --- /dev/null +++ b/WSR/migrations/0001_initial.py @@ -0,0 +1,86 @@ +# Generated by Django 4.2.1 on 2023-06-03 15:45 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Article', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('titre', models.CharField(max_length=100)), + ('contenu', models.TextField()), + ('date_publication', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nom', models.CharField(max_length=100)), + ('circuit', models.CharField(max_length=100)), + ('image', models.ImageField(upload_to='course_images')), + ], + ), + migrations.CreateModel( + name='Pilote', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nom', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='Saison', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nom', models.CharField(max_length=100)), + ('annee', models.PositiveIntegerField()), + ], + ), + migrations.CreateModel( + name='Vehicule', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('marque', models.CharField(max_length=100)), + ('modele', models.CharField(max_length=100)), + ('annee_fabrication', models.PositiveIntegerField()), + ], + ), + migrations.CreateModel( + name='Resultat', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('position_arrivee', models.PositiveIntegerField()), + ('position_depart', models.PositiveIntegerField()), + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.course')), + ('pilote', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.pilote')), + ], + ), + migrations.AddField( + model_name='pilote', + name='vehicule', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.vehicule'), + ), + migrations.CreateModel( + name='Participation', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.course')), + ('pilotes', models.ManyToManyField(to='WSR.pilote')), + ('saison', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.saison')), + ], + ), + migrations.AddField( + model_name='course', + name='saison', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='WSR.saison'), + ), + ] diff --git a/WSR/models.py b/WSR/models.py index 71a836239075aa6e6e4ecb700e9c42c95c022d91..2c9133fa2d0337ec3f7f3a8d75a4d6cd4dedb100 100644 --- a/WSR/models.py +++ b/WSR/models.py @@ -1,3 +1,63 @@ from django.db import models -# Create your models here. +class Saison(models.Model): + nom = models.CharField(max_length=100) + annee = models.PositiveIntegerField() + + def __str__(self): + return self.nom + + +class Pilote(models.Model): + nom = models.CharField(max_length=100) + vehicule = models.ForeignKey('Vehicule', on_delete=models.CASCADE) + + def __str__(self): + return self.nom + + +class Vehicule(models.Model): + marque = models.CharField(max_length=100) + modele = models.CharField(max_length=100) + annee_fabrication = models.PositiveIntegerField() + + def __str__(self): + return f"{self.marque} {self.modele}" + + +class Course(models.Model): + nom = models.CharField(max_length=100) + circuit = models.CharField(max_length=100) + saison = models.ForeignKey(Saison, on_delete=models.CASCADE) + image = models.ImageField(upload_to='course_images') + + def __str__(self): + return self.nom + + +class Article(models.Model): + titre = models.CharField(max_length=100) + contenu = models.TextField() + date_publication = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return self.titre + + +class Resultat(models.Model): + pilote = models.ForeignKey(Pilote, on_delete=models.CASCADE) + course = models.ForeignKey(Course, on_delete=models.CASCADE) + position_arrivee = models.PositiveIntegerField() + position_depart = models.PositiveIntegerField() + + def __str__(self): + return f"{self.pilote} - {self.course}" + + +class Participation(models.Model): + saison = models.ForeignKey(Saison, on_delete=models.CASCADE) + course = models.ForeignKey(Course, on_delete=models.CASCADE) + pilotes = models.ManyToManyField(Pilote) + + def __str__(self): + return f"{self.saison} - {self.course}"