练习 - 创建模型

已完成

通过创建模型,可以定义任何重要字段以及数据的行为。 接下来为 dog_shelters 应用程序添加必要的模型

创建模型

此过程的第一步是添加模型。 Django 提供一个可用于模型的空文件,名为 models.py

  1. 在 Visual Studio Code 中,打开 dog_shelters/models.py 文件

  2. 通过在注释 Create your models here 下输入以下代码,添加两个 Python 类以包含模型:

    # Create your models here
    class Shelter(models.Model):
        name = models.CharField(max_length=200)
        location = models.CharField(max_length=200)
        def __str__(self):
            return self.name
    
    class Dog(models.Model):
        shelter = models.ForeignKey(Shelter, on_delete=models.PROTECT)
        name = models.CharField(max_length=200)
        description = models.TextField()
        intake_date = models.DateTimeField(auto_now_add=True)
        def __str__(self):
            return self.name
    

通过添加这些模型,我们现在具有收容所和狗的表示形式。 请注意 DogShelter 之间的关系:一个 Shelter 类可以容纳许多 Dog 值。 还要注意 intake_dateauto_now_add 值。 如果未提供自定义日期,它会自动将该字段设置为当前日期。

我们还要在 ForeignKey 类中使用 Dog。 此部分告诉 Django DogShelter 存在关系。 通过定义此关系,我们告诉 Django,每只狗都与一个收容所相关。

注册模型

所有应用程序都必须在 Django 中向项目注册。 这看似有一些违反直觉,但这只是因为应用程序文件夹存在于项目中,而这并不意味着它会自动加载。 我们需要将其添加到 INSTALLED_APPS 列表来对其进行注册。

  1. 在 dog_shelters 文件夹中找到配置类名。 要找到此类名,请转到 dog_shelters/apps.py 文件并使用以下代码检查类名是否为 DogSheltersConfig

    class DogSheltersConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'dog_shelters'
    
  2. 在项目中打开 settings.py

  3. 在注释 #[TODO] - Add the app to the list of INSTALLED_APPS 下添加类名的完整路径:

        #[TODO] - Add the app to the list of INSTALLED_APPS
        'dog_shelters.apps.DogSheltersConfig',
    

    INSTALLED_APPS 列表现在包含以下项:

    INSTALLED_APPS = [
        #[TODO] - Add the app to the list of INSTALLED_APPS
        'dog_shelters.apps.DogSheltersConfig',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    

    将该行添加到 INSTALLED_APPS 列表,这会告诉 Django,在它运行项目时需要包含此应用。

总结

你现在已经为 Django 应用程序创建了两个模型。 创建模型是所有 Django 项目的基础。