【问题标题】:Unique Class or extend Class or Subclass in Python Django?Python Django中的唯一类或扩展类或子类?
【发布时间】:2021-10-19 11:57:03
【问题描述】:

Python Django 中的唯一类或扩展类或子类?

在以下情况下,我有一种需要?延长的感觉? Migration 类,而不是在第二个模块中重新声明它。还是需要一个子类?

这里的目标:创建一个名为场所的 postgres 表。已经有一个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...)),
            ...

** 模型/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

帮助?

【问题讨论】:

  • 我完全不清楚你的目标是什么。
  • 通常迁移是从模型中创建的,并且它们可以工作。你为什么选择了另一条路?
  • 感谢 cmets。我将编辑问题以显示模型创建代码。

标签: python django class model


【解决方案1】:

创建模型类后,您需要运行python manage.py makemigrations,django 将创建一个迁移文件。 (确保您已将应用添加到项目 settings.py 上的 INSTALLED_APPS 中

运行 makemigrations 后,您将能够在应用的迁移文件夹中看到迁移文件。拥有此文件并不意味着已创建表。它只是表示当您运行 migrate 命令时将在数据库上运行的一组指令。

当您拥有新的迁移文件后,您可以运行python manage.py migrate,该迁移文件将应用于您的数据库。

您可以运行 showmigrations 命令来查看在您的数据库上应用了哪些迁移。

python manage.py showmigrations 要么 python manage.py showmigrations app_name

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多