python - Django - 属性错误 : module 'os' has no attribute 'environment'

标签 python django macos visual-studio-code pylint

在学习 Django 的背景下,我需要使用 Faker 模块用随机数据填充 Sqlite。

在models.py下创建了几个模型:

from django.db import models

class Topic(models.Model):
    top_name = models.CharField(max_length=264,unique=True)

    def __str__(self):
        return self.top_name

class Webpage(models.Model):
    topic = models.ForeignKey(Topic,on_delete=models.DO_NOTHING)
    name = models.CharField(max_length=264,unique=True)
    url = models.URLField(unique=True)

    def __str__(self):
        return self.name

class AccessRecord(models.Model):
    name = models.ForeignKey(Webpage,on_delete=models.DO_NOTHING)
    date = models.DateField()

    def __str__(self):
        return str(self.date)

为了随机填充这些模型,我使用了以下脚本 (populate_first_app.py):

import os
os.environment.setdefault('DJANGO_SETTINGS_MODULE','first_project.settings')

import django
django.setup()

##FAKE POP SCRIPT
import random
from first_app.models import AccessRecord,Webpage,Topic
from faker import Faker


fakegen = Faker()
topics = ['Search','Social','Marketplace','News','Games']

def add_topic():
    t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]
    t.save()
    return t

def populate(N=5):
    for entry in range(N):
        top = add_topic()
        fake_url = fakegen.url()
        fake_date = fakegen.date()
        fake_name = fakegen.company()

        webpg = Webpage.objects.get_or_create(topic=top,url=fake_url,name=fake_name)[0]

        acc_rec = AccessRecord.objects.get_or_create(name=webpg,date=fake_date)[0]

if __name__ == '__main__':
    print('populating script!')
    populate(20)
    print('populating complete')

当我运行 populate_first_app.py 时,出现以下错误:

AttributeError: module 'os' has no attribute 'environment'

使用 Visual Studio Code (v1.39.2),我卡住了。

可视代码突出显示以下行中的错误:

t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]

Class 'Topic' has no 'objects' memberpylint(no-member)

我使用以下命令安装了 pylint:

pip3 install pylint-django

但还是卡住了。

最佳答案

调用应该是

os.environ.setdefault('DJANGO_SETTINGS_MODULE','first_project.settings')

有关更多详细信息,您可以查看以前的问题,例如: Is it safe to use os.environ.setdefault?

关于python - Django - 属性错误 : module 'os' has no attribute 'environment' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58465385/

相关文章:

python - PyGame 局部变量

python - Flask __init__.py 不显示更改

雪豹上的 Java5

swift - 设置 NSView 的比例

python - 如何在 xlsxwriter 中对整列使用色阶

python - 是否可以使用 scikit-learn 而不是二元分类来预测变量(如果可以)而不是如何预测

django - 如何将 url 参数传递给 Django urls.py 中的 reverse_lazy

python - 在 Django 中访问模型字段属性

python - 如何在 Django 中引发 410 错误

java - Mac OSX Mavericks (10.9.1) 上 Xerial 的 JDBC SQLite 出现 SQLITE_NOTADB 错误