Image map (model a administrace)

13 views
Skip to first unread message

Fosil

unread,
May 28, 2012, 6:46:56 AM5/28/12
to django-cs
Ahoj
Řeším následující:
Mám model produktu. Potřebuji ke každému produktu přidat obrázek, a k
němu klikací mapu vedoucí na různé "spřízněné prudukty".

1) Jak model? - zatím mi to vychází jako:
- "reference_products" (vazba na id 1 a více produktů) +
"reference_diagram" (obrázek) v modelu Product
- ve vazbě 1:1 k produktu objekt "ImageMap" - obsahuje vždy "Shape" +
odpovídající "reference_product"
- objekt Shape (zatím zjednodušeně pouze obdelníky) obsahuje objekty
"point" ve vazbě na konkrétní shape + jejich pořadí pro vykreslování
- objekt point [x,y] souřadnice (zatím se budu nacházet pouze ve
2D ;-)

2) administrace - jak tohle "elegantně administrovat"
Optimálně: zadám product (včetně "reference_products" a
"reference_diagram") a po té přejdu do adminstrace "references" kde
bych chtěl mít JS kreslítko oblastí, které budu připřazovat
jednotlivým "reference_product"

Zbláznil jsem se a všechno to strašně překombinoval? Není na to v tom
krásném Djangu nějaké instantní řešení?
Díky všem

Honza Král

unread,
May 28, 2012, 7:55:23 AM5/28/12
to djan...@googlegroups.com
Ahoj,

2012/5/28 Fosil <filip....@gmail.com>:
> Ahoj
> Řeším následující:
> Mám model produktu. Potřebuji ke každému produktu přidat obrázek, a k
> němu klikací mapu vedoucí na různé "spřízněné prudukty".
>
> 1) Jak model? - zatím mi to vychází jako:
> - "reference_products" (vazba na id 1 a více produktů) +
> "reference_diagram" (obrázek) v modelu Product
> - ve vazbě 1:1 k produktu objekt "ImageMap" - obsahuje vždy "Shape" +
> odpovídající "reference_product"
> - objekt Shape (zatím zjednodušeně pouze obdelníky) obsahuje objekty
> "point" ve vazbě na konkrétní shape + jejich pořadí pro vykreslování
> - objekt point [x,y] souřadnice (zatím se budu nacházet pouze ve
> 2D ;-)

class RelatedProduct(Model):
product = ForeignKey('Product')
related_product = ForeignKey('Product', related_name='related_to_me')
image_coords = JSONField()

class Product(Model):
related_image = models.ImageField()



>
> 2) administrace - jak tohle "elegantně administrovat"
> Optimálně: zadám product (včetně "reference_products" a
> "reference_diagram") a po té přejdu do adminstrace "references" kde
> bych chtěl mít JS kreslítko oblastí, které budu připřazovat
> jednotlivým "reference_product"
>

V adminu si dej Inline pro ten related product. Tomu inlinu dej custom widget
pro ten JSONField, mozna i Field a JS kreslitko a serializaci do jsonu res tam.

pripadne si jeste muzes nadefinovat field:
related_products = ManyToManyField('Product', through=RelatedProduct)
kdyby se ti to k necemu hodilo

> Zbláznil jsem se a všechno to strašně překombinoval? Není na to v tom
> krásném Djangu nějaké instantní řešení?
> Díky všem
>
> --
> E-mailová skupina djan...@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs

Visgean Skeloru

unread,
May 28, 2012, 1:36:50 PM5/28/12
to djan...@googlegroups.com
Zdravím, nešlo by prostě použít

class Product(Model):
    related_products = models.ManyToManyField("self")
image = models.ImageField()


?

2012/5/28 Honza Král <honza...@gmail.com>



--
GPG pub key | github/visgean | jabber

Reply all
Reply to author
Forward
0 new messages