diff --git a/samplesite/bboard/admin.py b/samplesite/bboard/admin.py index cb9b948..f0673d6 100644 --- a/samplesite/bboard/admin.py +++ b/samplesite/bboard/admin.py @@ -1,10 +1,12 @@ from django.contrib import admin from .models import Bb +from .models import Rubric class BbAdmin(admin.ModelAdmin): - list_display = ('title', 'content', 'price', 'published') + list_display = ('title', 'content', 'price', 'published', 'rubric') list_display_links = ('title', 'content') search_fields = ('title', 'content', ) -admin.site.register(Bb, BbAdmin) \ No newline at end of file +admin.site.register(Bb, BbAdmin) +admin.site.register(Rubric) \ No newline at end of file diff --git a/samplesite/bboard/migrations/0002_rubric_alter_bb_options_alter_bb_content_and_more.py b/samplesite/bboard/migrations/0002_rubric_alter_bb_options_alter_bb_content_and_more.py new file mode 100644 index 0000000..2e4246e --- /dev/null +++ b/samplesite/bboard/migrations/0002_rubric_alter_bb_options_alter_bb_content_and_more.py @@ -0,0 +1,55 @@ +# Generated by Django 4.1.2 on 2022-10-05 14:29 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('bboard', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Rubric', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(db_index=True, max_length=20, verbose_name='Название')), + ], + options={ + 'verbose_name': 'Рубрика', + 'verbose_name_plural': 'Рубрики', + 'ordering': ['name'], + }, + ), + migrations.AlterModelOptions( + name='bb', + options={'ordering': ['-published'], 'verbose_name': 'Объявление', 'verbose_name_plural': 'Объявления'}, + ), + migrations.AlterField( + model_name='bb', + name='content', + field=models.TextField(blank=True, null=True, verbose_name='Описание'), + ), + migrations.AlterField( + model_name='bb', + name='price', + field=models.FloatField(blank=True, null=True, verbose_name='Цена'), + ), + migrations.AlterField( + model_name='bb', + name='published', + field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Опубликованно'), + ), + migrations.AlterField( + model_name='bb', + name='title', + field=models.CharField(max_length=50, verbose_name='Товар'), + ), + migrations.AddField( + model_name='bb', + name='rubric', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='bboard.rubric', verbose_name='Рубрика'), + ), + ] diff --git a/samplesite/bboard/models.py b/samplesite/bboard/models.py index dfb415b..a44d2ed 100644 --- a/samplesite/bboard/models.py +++ b/samplesite/bboard/models.py @@ -1,6 +1,7 @@ from tabnanny import verbose from turtle import title from django.db import models +from django.test import modify_settings class Bb (models.Model): title = models.CharField(max_length=50, verbose_name = 'Товар') @@ -8,7 +9,20 @@ class Bb (models.Model): price = models.FloatField(null=True, blank=True, verbose_name = 'Цена') published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name = 'Опубликованно') + rubric = models.ForeignKey('Rubric', null = True, on_delete = models.PROTECT, verbose_name = 'Рубрика') + class Meta: verbose_name_plural = 'Объявления' verbose_name = 'Объявление' ordering = ['-published'] + +class Rubric(models.Model): + name = models.CharField(max_length = 20, db_index = True, verbose_name = 'Название') + + def __str__(self) -> str: + return self.name + + class Meta: + verbose_name_plural = 'Рубрики' + verbose_name = 'Рубрика' + ordering = ['name'] \ No newline at end of file diff --git a/samplesite/db.sqlite3 b/samplesite/db.sqlite3 index 8d714f2..d8e98d1 100644 Binary files a/samplesite/db.sqlite3 and b/samplesite/db.sqlite3 differ