diff --git a/manuels/admin.py b/manuels/admin.py index 60c3b32..c7d6c1a 100644 --- a/manuels/admin.py +++ b/manuels/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from manuels.models import Teacher, Book, Level +from manuels.models import Teacher, Book, Level, Editor @admin.register(Teacher) @@ -16,3 +16,8 @@ class LevelAdmin(admin.ModelAdmin): @admin.register(Book) class BookAdmin(admin.ModelAdmin): pass + + +@admin.register(Editor) +class EditorAdmin(admin.ModelAdmin): + pass diff --git a/manuels/migrations/0002_auto_20180522_0132.py b/manuels/migrations/0002_auto_20180522_0132.py new file mode 100644 index 0000000..555438f --- /dev/null +++ b/manuels/migrations/0002_auto_20180522_0132.py @@ -0,0 +1,30 @@ +# Generated by Django 2.0.5 on 2018-05-21 23:32 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('manuels', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Editor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50, verbose_name='nom')), + ], + options={ + 'verbose_name': 'éditeur', + 'verbose_name_plural': 'éditeurs', + }, + ), + migrations.AlterField( + model_name='book', + name='editor', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='manuels.Editor', verbose_name='éditeur'), + ), + ] diff --git a/manuels/models.py b/manuels/models.py index 45bb974..6c35fa4 100644 --- a/manuels/models.py +++ b/manuels/models.py @@ -41,6 +41,16 @@ class Level(models.Model): return self.name +class Editor(models.Model): + class Meta: + verbose_name = 'éditeur' + verbose_name_plural = 'éditeurs' + name = models.CharField('nom', max_length=50) + + def __str__(self): + return self.name + + def isbn_validator(value): regex = re.compile(r'(\d-?){10,13}X?') if not regex.match(value): @@ -57,7 +67,7 @@ class Book(models.Model): field = models.CharField('matière', max_length=100) title = models.TextField('titre') authors = models.TextField('auteurs') - editor = models.CharField('éditeur', max_length=200) + editor = models.ForeignKey(verbose_name='éditeur', to=Editor, on_delete=models.SET_NULL, null=True) collection = models.CharField('collection', max_length=200, blank=True) publication_year = models.PositiveIntegerField('année de publication') isbn = models.CharField('ISBN/EAN', max_length=20, validators=[isbn_validator])