Affiliate 60% provize (239,4 Kč VIP) - sex seznamka bez podvodů ZijemeNezavazne.cz
Zobrazují se odpovědi 1 až 4 z 4

Jak na vypis objektu v template

  1. Ahoj,

    potreboval bych poradit, jak vypisu v template objekt z databaze.

    Mam model
    class Product(models.Model):
    name = models.CharField(max_length=200)

    class Variant(models.Model):
    product = models.ForeignKey(Product)
    size = models.CharField(max_length=10)


    V template to vypisuji nasledovne


    {% for prod in product_list %}
    <NAME>{{ prod.nazev }}</NAME>
    {% endfor %}

    ale vubec netusim, jak mam vypsat vsechny velikosti pro dany produkt z tridy variant.
    Muzete mi nekdo poradit?

    Diky

  2. Co se právě děje na Webtrhu?
  3. Kód:
    {% for variant in product_list.variant_set.all %}
         <NAME>{{ variant.product.nazev }}</NAME>
         <SIZE>{{ variant.size }}</SIZE>
    {% endfor %}

  4. Citace Původně odeslal syntaxsugar Zobrazit příspěvek
    Kód:
    {% for variant in product_list.variant_set.all %}
         <NAME>{{ variant.product.nazev }}</NAME>
         <SIZE>{{ variant.size }}</SIZE>
    {% endfor %}
    a nevypise to nahodou vsechny objekty typu Variant?

  5. Citace Původně odeslal mallox Zobrazit příspěvek
    a nevypise to nahodou vsechny objekty typu Variant?
    Ne, object_set() (Manager, který za tím sedí) sleduje vztahy 1:n / m:n v databázi.

    Kód:
    {% for variant in product_list.variant_set.all %}
         <NAME>{{ variant.product.nazev }}</NAME>
         <SIZE>{{ variant.size }}</SIZE>
    {% endfor %}
    Nejsem si jistý, ale product_list vůbec nemusí mít variant_set, spíš by bylo rozumnější (bez ohledu na vytížení databáze) dělat:
    Kód:
    {% for product in product_list %}
                      <NAME>{{ product.nazev }}</NAME>
                      {% for variant in product.variant_set.all %}
                             <SIZE>{{ variant.size }}</SIZE>
                       {% endfor %}
    {% endfor %}
    Někde v API je select_related () (+ pár dalších), ušetří ti pár desítek/stovek dotazů do db.

Hostujeme u Server powered by TELE3