Сохраните URL продукта для каждого продавца и продукта с моделями Django - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать базу данных, хранящую информацию для различных продуктов и розничных продавцов. Я пытаюсь собрать информацию обо всех URL-адресах, которые определенные продукты можно найти на веб-сайтах розничной торговли. По сути, подумайте о традиционном веб-сайте для проверки цен. Существует страница продукта, на которой отображаются все URL-адреса продукта, поставляемого различными розничными продавцами.

Возможно, это довольно простое решение, но у меня возникают проблемы, когда я обдумываю его.

I 'Я не уверен, где мне следует захватить URL-адрес определенного продукта для каждого розничного продавца.

Я считаю, что URL-адреса должны храниться в модели продукта, для чего потребуется некоторый словарь для хранения информации о розничном продавце и URL-адресе продукта, проданного этими продавцами. розничные продавцы.

class Manufacturer(models.Model):
    manufacturers = models.CharField(max_length=10,choices=manufacturer_list,default='30')
    country = models.CharField(max_length=10,choices=country_list,default='30')


class Retailers(models.Model):
    retailer_name = models.CharField(max_length=10,choices=retailer_list,default='30')
    retailer_website = models.URLField(max_length=250)
    retailer_page = models.URLField(max_length=250)
    country = models.CharField(max_length=255)


class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=4,decimal_places=2)
    product_image_url = models.URLField(max_length=250)
    product_manufacturer_url = models.URLField(max_length=250)
    product_size = models.CharField(max_length=10,choices=bottle_sizes,default='30')
    manufacturer = models.ForeignKey(Manufacturer,on_delete=models.CASCADE)
    reatailers = models.ManyToManyField(Retailers)

Надеюсь, что это имеет смысл, Мат

1 Ответ

1 голос
/ 09 октября 2019

Вы можете добавить дополнительные поля к промежуточной модели отношения «многие ко многим».

class Product(models.Model):
    ...
    reatailers = models.ManyToManyField(Retailers, through='ProductRetailer')

class ProductRetailer(models.Model):
    url = models.CharField(max_length=255)
    product = models.ForeignKey(Product)
    retailer = models.ForeignKey(Retailers)

см. Документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...