小编ida*_*ure的帖子

Graphene Django - 具有一对多关系外键的变异

我想知道如何正确创建用于创建此 Django 模型的突变:

class Company(models.Model):

    class Meta:
        db_table = 'companies'
        app_label = 'core'
        default_permissions = ()

    name = models.CharField(unique=True, max_length=50, null=False)
    email = models.EmailField(unique=True, null=False)
    phone_number = models.CharField(max_length=13, null=True)
    address = models.TextField(max_length=100, null=False)
    crn = models.CharField(max_length=20, null=False)
    tax = models.CharField(max_length=20, null=False)
    parent = models.ForeignKey('self', null=True, on_delete=models.CASCADE)
    currency = models.ForeignKey(Currency, null=False, on_delete=models.CASCADE)
    country = models.ForeignKey(Country, null=False, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

如您所见,共有三个外键。对于模型CurrencyCountryParent(self)公司 DjangoObjectType看起来非常简单,如下所示:

class CompanyType(DjangoObjectType):
    class Meta:
        model = Company
Run Code Online (Sandbox Code Playgroud)

最后我的变异类 …

django django-models graphql graphene-python

14
推荐指数
1
解决办法
4881
查看次数

Django + Docker + SQLite3如何将数据库挂载到容器?

我在本地主机上有带某些表的sqlite数据库,我想将该数据库复制并粘贴到在docker上运行的服务器上。我创建了这样的路径:

在此处输入图片说明

db_data:有我想在django项目中运行的sqlite数据库。 网址:这是我的整个django项目

在我的docker-compose.yml我写了这个卷:

version: "3"

services:

  web:
    build: ./web/
    ports:
      - "8001:8001"
    volumes:
      - ./web:/code
      - /home/cosmo/db_data/db.sqlite3:/code/db.sqlite3
    command: python manage.py runserver 0.0.0.0:8001
Run Code Online (Sandbox Code Playgroud)

因此,我认为docker将在我的db_data中获取数据库并在我的Web文件夹中创建卷(在我的项目中。我在localhost上有数据库,因此不会有问题。)但我将在此处粘贴settings.py

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我将在db_data中打开db.sqlite3时,每个表和内容都在那里,但是当我运行容器时,我的项目文件夹(web)中的db.sqlite3为空。

当我将运行docker ps命令时,没有数据库容器,也许这是我不知道的问题。我只有那里:

在此处输入图片说明

红色圆圈中是我的django容器。因此,何时运行服务器并尝试从数据库登录每个帐户是未知的。因此,我认为容器可以与我项目中的空数据库一起使用。有人有什么解决办法吗?谢谢。

sqlite django mount docker

5
推荐指数
1
解决办法
2383
查看次数