Как создать объект в django

можно ли создать новый продукт с помощью scrap.py в django ?

когда я никогда не запускаю scrap.py, я получаю эту ошибку

    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

файл модели моего приложения

from django.db import models
from django.db import models

# Create your models here.
class Product(models.Model):
    name = models.CharField(max_length=50)
    age =  models.IntegerField()
    content =  models.TextField(max_length=400)
    def __str__(self):
        return self.name

файл scrap.py

from models import Product



Product.objects.create( name = 'BMW',
            age =25 ,
            content  =  'cool car'
)

Да, конечно, это возможно, просто импортируйте django и настройте переменную DJANGO_SETTINGS_MODULE :

import django
import os

# Configure settings for project
# Need to run this before calling models from application!
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app_name.settings') # Replace app_name with your application name.

# Import settings
django.setup()

# Import the models now
from app_name.models import Product

# Use the imported model
product = Product.objects.create(...)

Больше информации об этом посте

Для ошибки, с которой вы столкнулись выше, возможно, вы неправильно настроили Django.

Таким образом, этот вопрос имеет две проблемы, которые необходимо решить:

  1. Среда Django не настроена должным образом.
  2. Отправьте данные в модель из переполненных данных.

**1. Исправить проблему установки Django **

Для первого вопроса я советую вам настроить Django обычным образом, создав проект..... Затем, создайте приложение как python manage.py startapp product_app ДОБАВЬТЕ product_app в settings.INSTALLED_APPS как:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'product_app' <----- without this the models.py won't work.
]

Затем перейдите к вашей models.py и создайте модель Product, например. Перенесите модель в вашу базу данных.

На ваш первый вопрос можно ответить.

2. Добавьте собранные данные в модель Django.

Вторая часть - отправка данных в таблицу product, используя модель Product (представление таблицы продуктов).

Поля, которые вы создадите, будут зависеть от данных, которые вам нужны. Допустим, данные, которые я хочу сохранить из просмотренных данных, следующие: name, description, price, stock и если это available,

Отлично, давайте создадим нашу модель:

product_app/

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=250, unique=True)
    description = models.TextField(blank=True)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    stock = models.IntegerField(default =0)
    available = models.BooleanField(default=True)

    class Meta:
        verbose_name = 'product'
        verbose_name_plural =  'products'

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

Поскольку Django принимает словари в качестве объектов, используемых для запросов, вы можете получить эти данные в виде словаря/json для последующего размещения в таблице Product.

Хорошо, теперь для вашей части вам нужно как-то получить данные в виде словаря, похожего на этот, и вставить их в таблицу Product:

data = {
    "name":"bmw", 
    "description":"dont waste your money", 
    "price":25000.00, 
    "stock":4, 
    "available":True
    }

Пример запроса:

Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 
>>> from product_app.models import Product
>>> 
>>> data = {"name":"bmw", "description":"dont waste your money", "price":25000.00, "stock":4, "available":True,}
>>> 
>>> product = Product(**data)
>>> product.save()
>>> 
>>> product
<Product: bmw>

Отсюда вы можете делать с данными все, что захотите. Установите Django-Rest-Framework и отображайте данные как REST-API или отображайте данные в шаблоне.

Помните, что вы можете создавать необходимые запросы в файле views.py или где угодно.

Вернуться на верх