django-missing

4 views
Skip to first unread message

Mitar

unread,
Jul 25, 2011, 5:53:10 AM7/25/11
to djang...@googlegroups.com
Zdravo!

Ene reusable male stvari sem zacel pakirati v skupen paket django-missing:

https://bitbucket.org/mitar/django-missing

Ce zeli kdo kdaj prispevati, naj pove. ;-)

Trenutno se manjka dokumentacija (bilo je misljeno bolj za mojo
interno uporabo) in testi (mah, se jih se nisem naucil). So pa na
voljo:

- izboljsan slugify tako za Python kot JavaScript, ki se obnasata 99%
enako (JavaScript prav tako dela normalizacijo UTF8)
- template tag za forceanje prevoda v dolocen jezik
- template tag, ki shrani vsebino, ki se zrendra znotraj njega v
context (res ugly, samo vcasih ce kaksen drugi template tag ne podpira
shranjevanje v context, je to edini nacin)

Komentarji in pull requesti dobrodosli.


Mitar

Domen Kožar

unread,
Jul 26, 2011, 12:19:37 PM7/26/11
to Django Slovenia


On Jul 25, 12:53 pm, Mitar <mmi...@gmail.com> wrote:
> Zdravo!
>
> Ene reusable male stvari sem zacel pakirati v skupen paket django-missing:
>
> https://bitbucket.org/mitar/django-missing
>
> Ce zeli kdo kdaj prispevati, naj pove. ;-)
>
> Trenutno se manjka dokumentacija (bilo je misljeno bolj za mojo
> interno uporabo) in testi (mah, se jih se nisem naucil). So pa na

Ne čakat, testi pomagajo k rasti uporabnikov :)

> voljo:
>
> - izboljsan slugify tako za Python kot JavaScript, ki se obnasata 99%
> enako (JavaScript prav tako dela normalizacijo UTF8)

Osebno raje uporabim django-autoslug in slugify paketa. Potem samo še
dodaš v settings.py:

AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'

> - template tag za forceanje prevoda v dolocen jezik

Ne pride mi na pamet, kdaj to pride prav :)

> - template tag, ki shrani vsebino, ki se zrendra znotraj njega v
> context (res ugly, samo vcasih ce kaksen drugi template tag ne podpira
> shranjevanje v context, je to edini nacin)

Fork, submit upstream :)

Mitar

unread,
Jul 26, 2011, 2:59:39 PM7/26/11
to djang...@googlegroups.com
Zdravo!

2011/7/26 Domen Kožar <iele...@gmail.com>:


> Ne čakat, testi pomagajo k rasti uporabnikov :)

Lahko pa jih tudi kdo naredi, ki se zeli stestirati pri razumevanju
moje kode. ;-)

> Osebno raje uporabim django-autoslug in slugify paketa. Potem samo še
> dodaš v settings.py:
>
> AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'

To zahteva spremembo modelov? Torej ne mores recimo tega uporabiti v
adminu nad obstojecimi modeli. Pri meni pa le overrideas JavaScript in
vse ostalo pusti kot je. Predvsem pa ni ista stvar, saj ce prav vidim
to ni namenjeno client-sideu. Pri meni je namenjeno temu, da ko
uporabnik pise en field, se mu avtomaticno zgenerira drugi.

Je pa mogoce dobra stvar za skombinirati v lastnih aplikacijah. Torej
autoslug na server-sideu + moj JavaScript in moj Python slugify.
Hvala, nisem poznal.

Prav tako moj slugify dela boljse. Recimo đ, v kaj ga pretvori
autoslug in v kaj bi si ti zelel, da ga? ;-)

>> - template tag za forceanje prevoda v dolocen jezik
>
> Ne pride mi na pamet, kdaj to pride prav :)

Jaz uporabljam na vecjezicnih straneh, ko moras narediti link na drugi
jezik (recimo "view post in language abc") in ga je seveda boljse
narediti v tem drugem jeziku in ne trenutnem jeziku.

> Fork, submit upstream :)

Nocejo, ker je prevelika perverzija template sistema. ;-)


Mitar

Domen Kožar

unread,
Jul 26, 2011, 4:32:17 PM7/26/11
to Django Slovenia
Ah, se opravičujem, govorim iz glave in potem dam napačni primer ...

$ pip install webhelpers unidecode

>>> import webhelpers.text
>>> webhelpers.text.urlify(u'đčćš--test a')
u'dccs-test-a'

On Jul 26, 9:59 pm, Mitar <mmi...@gmail.com> wrote:
> Zdravo!
>
> 2011/7/26 Domen Kožar <ielect...@gmail.com>:
>
> > Ne čakat, testi pomagajo k rasti uporabnikov :)
>
> Lahko pa jih tudi kdo naredi, ki se zeli stestirati pri razumevanju
> moje kode. ;-)
>
> > Osebno raje uporabim django-autoslug in slugify paketa. Potem samo še
> > dodaš v settings.py:
>
> > AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'
>
> To zahteva spremembo modelov? Torej ne mores recimo tega uporabiti v
> adminu nad obstojecimi modeli. Pri meni pa le overrideas JavaScript in
> vse ostalo pusti kot je. Predvsem pa ni ista stvar, saj ce prav vidim
> to ni namenjeno client-sideu. Pri meni je namenjeno temu, da ko
> uporabnik pise en field, se mu avtomaticno zgenerira drugi.

V vsakem primeru moraš spremenit model, shema ostane ista, samo
validacija je druga.

>
> Je pa mogoce dobra stvar za skombinirati v lastnih aplikacijah. Torej
> autoslug na server-sideu + moj JavaScript in moj Python slugify.
> Hvala, nisem poznal.
>

Problem imaš, ker bo django-missing slugify pri večjem številu
uporabnikov potrebno dopolnjevat.
In to obe implementaciji. Če uporabiš slugify, lahko narediš zelo
enostaven GET, ki ti vrne
samo slug, katerega uporabiš v javascriptu.

> Prav tako moj slugify dela boljse. Recimo đ, v kaj ga pretvori
> autoslug in v kaj bi si ti zelel, da ga? ;-)

Uporablja transliteracijo celotnega unicode-a, medtem ko ima django-
missing tag samo majhen subset.

>
> >> - template tag za forceanje prevoda v dolocen jezik
>
> > Ne pride mi na pamet, kdaj to pride prav :)
>
> Jaz uporabljam na vecjezicnih straneh, ko moras narediti link na drugi
> jezik (recimo "view post in language abc") in  ga je seveda boljse
> narediti v tem drugem jeziku in ne trenutnem jeziku.

Valda, to je tisti en promil primerov, ki šteje :)

Mitar

unread,
Jul 27, 2011, 3:33:31 AM7/27/11
to djang...@googlegroups.com
Zdravo!

2011/7/26 Domen Kožar <iele...@gmail.com>:


> V vsakem primeru moraš spremenit model, shema ostane ista, samo
> validacija je druga.

Ne, jaz se hook-upam v Djangov uradni "prepulated fields" in samo
zamenjam JavaScript, ki to dela. Torej nalozis JavaScript po uradnem
in prepise ustrezne funkcije. To lahko naredis kar v templateu.

> Problem imaš, ker bo django-missing slugify pri večjem številu
> uporabnikov potrebno dopolnjevat.

Saj samo tiste izjeme je potrebno dopolnjevati, ki sta pa zelo podobne
strukture. Del preko UTF8 normalizacije pa ostaja enak. In glede na
to, da sem izjeme pobral kar iz trenutnega Djanga in dodal se nekaj
patchev iz njihovega Traca, bo po mojem dovolj za veliko kolicino
uporabnikov.

> Če uporabiš slugify, lahko narediš zelo enostaven GET, ki ti vrne samo slug,
> katerega uporabiš v javascriptu.

Hja, samo django-autoslug ne dela GETa? Ali sem jaz kaj spregledal?

> Uporablja transliteracijo celotnega unicode-a, medtem ko ima django-
> missing tag samo majhen subset.

Ne. django-missing dela oboje. ;-) Torej na roke pretvarja en subset
redkih izjem (kot je đ, ki ni d in crtica), za ostale pa pretvori v
normalizirano obliko in vrze ven vse dodatke. In to dela enako tako v
JavaScriptu kot Pythonu (da, uporabljam UTF-8 JavaScript
normalizator).


Mitar

Reply all
Reply to author
Forward
0 new messages