Уникальный класс или расширенный класс или подкласс в 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