Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 德扬戈元';t将值导入数据库-sqlite3_Django_Django Models_Django Database - Fatal编程技术网

Django 德扬戈元';t将值导入数据库-sqlite3

Django 德扬戈元';t将值导入数据库-sqlite3,django,django-models,django-database,Django,Django Models,Django Database,我正在尝试将值放入django数据库 我的app_name/models.py看起来像: from django.db import models # Create your models here. class Language(models.Model): id = models.AutoField(primary_key=True) code = models.TextField(max_length=14) en fr af de ... 我运行了以下命令: py

我正在尝试将值放入django数据库

我的app_name/models.py看起来像:

from django.db import models

# Create your models here.

class Language(models.Model):
    id = models.AutoField(primary_key=True)
    code = models.TextField(max_length=14)
en
fr
af
de
...
我运行了以下命令:

python3 manage.py makemigrations app_name
python3 manage.py migrate app_name
之后,我开始将值导入数据库。所以我运行这个命令:

python3 manage.py shell
并将此代码放入shell:

from app_name.models import *

with open('lang.txt', 'r') as file:
    for i in file:
        a = Language.objects.create(code=i.strip())
文件lang.txt包含309行语言代码。该文件看起来像:

from django.db import models

# Create your models here.

class Language(models.Model):
    id = models.AutoField(primary_key=True)
    code = models.TextField(max_length=14)
en
fr
af
de
...
在manage.py shell中运行此代码时,Django创建了309个语言对象。但是当我尝试在shell->
语言(id=1)中键入random id时,code
只返回空字符串-
'

我也尝试过使用save()方法,但仍然存在相同的问题

from definitions.models import *

with open('lang.txt', 'r') as file:
    for i in file:
        a = Language(code=i.strip())
        a.save()
Django版本1.10.1


所以我的问题是哪里会有问题

发生这种情况是因为您没有正确获取
语言
对象

当您使用
Language(id=1).code
时,您正在实例化语言对象,并且代码字段中没有任何值

在django中,要获取对象,需要执行
Model.objects.get(field=value)
。因此,您的代码变成:

Language.objects.get(id=1).code

您是否也使用
Language.objects.get(id=1)
获取空字符串?否,我看到了我所期望的文本。为什么get()方法显示正确的字符串和语言(id=1)。代码显示空字符串?谢谢这就是Django与db交互的方式。使用该方法。我想是读书的时候了;)