使用Django模型从脚本添加记录时出错

2024-09-27 17:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学习Django的项目中遇到了很多问题,所以我决定从头开始,直接去犯“错误”

因此,步骤:

  1. 创建一个名为wapi的文件夹
  2. 在该文件夹中执行virtualenv winenv
  3. 激活virtualenv
  4. 用pip安装django
  5. django admin startproject子站点
  6. Python管理.py迁移(然后创建超级用户)

然后我运行服务器,一切正常。你知道吗

之后我运行python管理.py开始啊

在文件夹里啊型号.py我写这个模型

from django.db import models
import datetime
from django.utils import timezone

# Create your models here.
class Producto(models.Model):

    nombre = models.CharField(max_length=200, unique=True)
    id =  models.PositiveIntegerField(primary_key=True)
    umbral = models.PositiveIntegerField(default=0)

    def __str__(self):
        return self.nombre


class Cotizacion(models.Model):

    #fecha = models.DateTimeField()

    minimo = models.FloatField()
    maximo = models.FloatField()
    promedio = models.FloatField()
    cantidad = models.PositiveIntegerField()
    Producto = models.ForeignKey(Producto)

    def __str__(self):

        return self.Producto.nombre

然后我在文件夹中注册这些/ah/管理员.py作为:}

from django.contrib import admin
from ah.models import Producto, Cotizacion

# Register your models here.
admin.site.register(Producto)
admin.site.register(Cotizacion)

在文件夹/substats/I中注册设置.py已安装应用中的应用

我再次运行migrate命令和runserver,我可以看到所有的东西都在运行,我甚至向数据库添加了一个Producto。你知道吗

到目前为止,一切正常。但是。。。。。我想创建一个记录不是从django管理网站,但与pyton脚本。我想说的是:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "subastas.settings")
import django
django.setup()
from ah.models import Producto, Cotizacion



Rose = Producto.objects.get(id=124105)
cot = Cotizacion(10, 11, 15, 10, Rose)
cot.save()

我有个错误:

Traceback (most recent call last):
  File "registrarProducto.py", line 4, in <module>
    django.setup()
  File "C:\Users\4user\Desktop\proyectosP\wapi\winenv\lib\site-packages\d
jango\__init__.py", line 22, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "C:\Users\user\Desktop\proyectosP\wapi\winenv\lib\site-packages\d
jango\conf\__init__.py", line 53, in __getattr__
    self._setup(name)
  File "C:\Users\user\Desktop\proyectosP\wapi\winenv\lib\site-packages\d
jango\conf\__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Users\user\Desktop\proyectosP\wapi\winenv\lib\site-packages\d
jango\conf\__init__.py", line 97, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Users\user\Desktop\proyectosP\wapi\winenv\lib\importlib\__ini
t__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'subastas'

有人问我为什么django.setup设置()标题,如果我没有输入,我会得到这个错误,如果我们想在脚本中处理模型,我会输入其他堆栈问题,这是必须输入该标题的

% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TAB
LESPACE, but settings are not configured. You must either define the environment
 variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing s
ettings.

Tags: djangoinpyimportselfmodelslinesite
1条回答
网友
1楼 · 发布于 2024-09-27 17:56:30

在项目中设置此应用程序 https://github.com/django-extensions/django-extensions

在项目根目录中创建python文件夹脚本。 使用Add添加脚本_协作.py你知道吗

from ah.models import Producto, Cotizacion

def run():
    Rose = Producto.objects.get(id=124105)
    cot = Cotizacion(10, 11, 15, 10, Rose)
    cot.save()

从项目根运行命令

python manage.py runscript add_cotizacions

相关问题 更多 >

    热门问题