如何将新数据从ebay添加到Django中的数据库?

罗布森

我正在使用python ebay-sdk库来连接到ebay api。

我想从ebay api中获取一些案例并将其保存到数据库中。

我有一个这样的应用程序和模型:

class Case(models.Model):
    # case is not necessarily a listing (often O2M)
    STATUS = Choices('new', 'cancelled', 'active', 'taken_down', 'archived')

    name = models.CharField(max_length=512)
    when_created = models.DateTimeField(default=now, blank=True)
    user = models.ForeignKey(User)
    make = models.ForeignKey(Make)
    status = StatusField(default=STATUS.new)
    platform = models.ForeignKey(Platform, on_delete=models.CASCADE)
    listing_id = models.CharField(max_length=64)
    listing_owner = models.CharField(max_length=128)
    url = models.CharField(max_length=512)
    price = models.FloatField(blank=True, null=True)
    # for now currency as char is ok.
    currency = models.CharField(max_length=3, default='USD')
    quantity = models.IntegerField(default=1)
    when_listing_started = models.DateTimeField(blank=True, null=True)
    when_listing_ends = models.DateTimeField(blank=True, null=True)
    valid_days = models.IntegerField(blank=True, null=True)

    objects = models.Manager.from_queryset(CaseQueryset)()

    def __str__(self):
        return self.name

    @property
    def days_valid(self):
        created = self.when_created.replace(tzinfo=None)
        now = datetime.datetime.utcnow().replace(tzinfo=None)
        datetime.timedelta(6, 1)
        return (now - created).days

    def handle_sent_report(self):
        self._set_active_state()

    def handle_cancel(self):
        self._set_cancelled_state()

    def _set_active_state(self):
        if self.status != Case.STATUS.new:
            raise InvalidCaseStatus
        self.status = Case.STATUS.active
        self.save()

    def _set_cancelled_state(self):
        if self.status not in (Case.STATUS.new, Case.STATUS.active):
            raise InvalidCaseStatus
        self.status = Case.STATUS.cancelled
        self.save()

我创建了其他应用程序,ebay-finderebay_find.py在eBay上找到了汽车:

from ebaysdk.finding import Connection as Finding

from django.db import models

from cases.models import Case
from trademarks.models import Make


def ebay_find():
    pass

api = Finding(domain='svcs.sandbox.ebay.com', appid="MY_EBAY_APP_ID", config_file=None)
response = api.execute('findItemsAdvanced', {'keywords': 'Cadillac'})
items = response.dict()
items_list = items['searchResult'].get('item')

ebay_cases = []

for item in items_list:
    new_case = Case.objects.create(
        name=item['title'],
        platform="Ebay",
        listing_id=car["model"],
        url=item['viewItemURL'],
        price=item['sellingStatus']['currentPrice']['value'],
        currency=item['sellingStatus']['currentPrice']['_currencyId']
    )
    new_case.save()

我很困惑如何像从中将这些数据从items_list添加到我的数据库中Case我必须接受所有相同的领域,例如inCase吗?我可以在创建对象上默认设置一些字段吗?

劳里·埃里亚斯(Lauri Elias)

如果您希望以最小的麻烦来保存数据,则可以,请使用相同的字段名称。

您有一个模型字段示例,该示例字段在您自己的代码中带有默认值:

currency = models.CharField(max_length=3, default='USD')

您还可以覆盖模型的save()方法:

def save(self, *args, **kwargs):
    super(Case, self).save(*args, **kwargs)
    if not self.when_listing_started:
        self.when_listing_started = datetime.datetime.now()
        super(Case, self).save(*args, **kwargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将新的数据行添加到我的 Derby 数据库中?

如何将新数据添加到 android 中的 Firebase 数据库?

如何将条形图添加到基于Django的数据库中?

如何将NullableBooleanField添加到现有的Django数据库中?

如何将新对象添加到现有实体,将数据放入数据中并让EF将其添加到我的数据库中?

如何将新的whosonfirst位置添加到现有的pelias数据库?

如何将列表中的数据动态添加到数据库(PostgreSQL)

如何将数据添加到Firestore数据库中的现有文档

如何将数据添加到 firebase 数据库中已有的引用?

如何将数据库路由器添加到Django项目

如何将默认值添加到变量并存储在 Django 的数据库中?

如何将复选框中的值添加到数据库

如何将多个python变量添加到SQL数据库中?

如何将数据库值添加到包含类作为对象的字典中

如何将一些值添加到我的数据库中

如何将列表元素添加到熊猫数据库中的行元素

Delphi SQL如何将数据添加到MS Access数据库表中的特定记录中

如何将数据库中的数据添加到C#中的变量以进行登录

即使未在原始模型中指定新值,如何将新值添加到现有MongoDB数据库中

蛋糕3:如何将具有primaryKey设置的新实体添加到数据库?

如何将发送数据从我的数据库添加到HTML中的文本区域表单

如何将H2添加到Wildfly,以便可以查看数据库中的数据?

如何将数据添加到 Firestore 数据库子集合中的特定文档?

如何将标头添加到我从机器学习数据库中提取的以下数据中

如何将数据添加到我的Android应用程序中的现有数据库?

如何将 $_SESSION 变量添加到 Ajax 请求中并将数据插入 mysql 数据库 PHP?

如何将 Xml 数据添加到 Access 数据库错误

如何将数据添加到新创建的 Room 数据库?

如何将初始数据添加到SQLite数据库?