Уникальный класс или расширенный класс или подкласс в Python Django?

Unique Class или extend Class или Subclass в Python Django?

В следующей ситуации у меня есть ощущение, что мне нужно "расширить" класс Migration вместо того, чтобы заново создавать его во втором модуле. Или нужен дочерний класс?

Задача: Создать таблицу postgres под названием venues. Уже есть models/venues.py, который, кажется, настроен нормально.

migrations/0001_initial.py:

class Migration(migrations.Migration):
    initial = True
    dependencies = [('auth', '0012_alter_user_first_name_max_length'),]
    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, ...)),
                ('password', models.CharField(max_length=128, ...)),
                ...

migrations/0002_venue.py:

class Migration(migrations.Migration):
    dependencies = [('app', '0001_initial'),]

    operations = [
        migrations.CreateModel(
            name='Venue',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True...)),
            ('name', models.CharField(blank=True ...)),
            ('address', models.CharField(blank=True...)),
            ...

** models/venue.py:**

class Venue(models.Model):
    name = models.CharField(blank=True, null=True...)
    address = models.CharField(blank=True, null=True...)
    city = models.CharField(blank=True, null=True, ...)
    zip = models.CharField(blank=True, null=True...)
    #gps_coords = models.CharField(blank=True...)
    gps_lat = models.DecimalField(max_digits=14...)
    gps_long = models.DecimalField(max_digits=14...)
    description = models.TextField(blank=True, ...)
    website = models.URLField(blank=True...)
    contact_phone = models.CharField(blank=True...)
    contact_email = models.EmailField(blank=True...)
    contact_name = models.CharField(blank=True...)

    def __str__(self):
        return self.name + " " + self.description

Помощь?

После создания класса модели, вам нужно запустить python manage.py makemigrations и django создаст файл миграции. (Убедитесь, что вы добавили приложение в INSTALLED_APPS в settings.py проекта

После запуска makemigrations вы сможете увидеть файл миграции в папке migrations вашего приложения. Наличие этого файла не означает, что таблица создана. Он просто представляет собой набор инструкций, которые будут выполняться в базе данных при запуске команды migrate.

Когда у вас есть новый файл миграции, вы можете запустить python manage.py migrate, и этот файл миграции будет применен к вашей базе данных.

Вы можете выполнить команду showmigrations, чтобы увидеть, какие миграции применяются к вашей базе данных.

python manage.py showmigrations или python manage.py showmigrations app_name

Вернуться на верх