Zapisywanie danych do bazy

0

Mam dane w następującym formacie:

def get_best_products(self):
    dict_of_items = {}

    for x in range (0, self.max_range):
        itemId = self.fresh_data.item[x].itemId
        itemTitle = self.fresh_data.item[x].itemTitle
        photoUrl = self._get_main_item_photo(x)
        itemPrice = self._get_item_price(x)

        dict_of_items[self.fresh_data.item[x].bidsCount] = [itemId, itemTitle, itemPrice, photoUrl]

    return self._sort_parsed_item_data(dict_of_items)

def _sort_parsed_item_data(self, data):
    return OrderedDict(sorted(data.items(), reverse=True, key=lambda t: t[0]))

Po krótce jest do słownik którego kluczem jest ilość kupionych przedmiotów a Value -> to lista zawierająca [id, url,photo] coś w ten deseń.

Ok stworzyłem następujący model, który będzie przechowywać te dane:

class BestItemList(models.Model):
    itemId = models.IntegerField(default=0)
    itemTitle = models.CharField(max_length=50, default ="Nazwa Przedmiotu")
    bidsCount = models.IntegerField(default = 0)
    priceValue = models.CharField(max_length=10, default ="5 zł")
    photoUrl = models.CharField(max_length=250, default ="photo url")

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

    def init_database(self):
        default_list = BestItemList()
        for x in range(0, 100):
            default_list.save()

stworzyłem w nim funkcję która myślałem wypełni wszystkie pola defaultowymi wartościami ale tak się nie stało.
W którym pliku powinienem tworzyć funkcje które będą manipulować bazą danych, np dodawać/updatować dane pola w modelu

Obecnie chcę zrobić coś takiego zę tworzę te 100 rekordów defaultowymi wartościami, a następnie inną funkcją updatuję je wartościami ze słownika...

Tylko kurde co gdzie w jakim pliku? Byłbym wdzięczny za pomoc... bo czas nagli a ja zielonka w django trochę ;)

0

Dżizas, co Ty tu narobiłeś!:)
Na poczatek kod:

    class BestItemList(models.Model):
    
    def __init__(self):
        self.itemId = models.IntegerField(d=0)# I tak dalej..

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

default_object = BestItemList()

def init_database():
    default_list = []
    for x in range(0, 100):
        default_list.append(default_object)
    return default_list

Stwórz sobie konstruktor (__init__) z domyślnymi wartościami. Potem Możesz gdzieś poza klasa utworzyć obiekt (default_object = BestItemList()) i, finalnie, też poza klasą, w pętli, Wypełniasz listę stoma kopiami obiektu; python jest dynamiczny, więc Tworzysz listę czegoś (puste nawiasy), a potem Dodajesz do niej co Chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1