Souhlas s Martinem, ty hodnoty uložené v databázi by měly být v konstantě,
ať se nepovalují v kódu. Můžeš pak snadno změnit ty hodnoty 0, 1, 2 třeba
na stringy a nic se ti nerozbije.

Koukám že gettextem označen název fieldu "Dashboard privacy". Dříve nebo
později zjistíš, že potřebuješ třeba kvůli formuláři překládat i ty
choices. Proto se používá metoda kterou si zvolil - tuplík (hodnota do DB,
popis pro lidi). Když si ten popis pro lidi hodíš přímo do databáze, tak to
budeš těžko překládat. Což můžeš vytkout kolegovi, až budeš dělat CR ty
jemu :-)

Honza

2014-11-13 8:54 GMT+01:00 Martin Tiršel <[email protected]>:

> Zdar,
>
> pouzivam podla typu/mnozstva hodnot/zaznamov, bud integer alebo 1-2 znaky.
> V kode potom doporucujem pouzivat nieco taketo:
>
> PRIVACY_TYPE_PRIVATE = 0
> PRIVACY_TYPE_FRIENDS = 1
> PRIVACY_TYPE_PUBLIC = 2
> PRIVACY_CHOICES = (
>     (PRIVACY_TYPE_PRIVATE, "private"),
>     (PRIVACY_TYPE_FRIENDS, "friends"),
>     (PRIVACY_TYPE_PUBLIC, "public"),
> )
>
> Roznych choices je po aplikacii obvykle viacej a lustit to v kode nie je
> zrovna prijemne. Takto je z nazvu hned jasne o co ide a aj pripadna uprava
> hodnoty nie je taka bolestiva.
>
> Martin
>
>
> S pozdravom,
> Martin Tiršel,
> tel.:
> +421 948 199 406 (O2 SR)
> +420 776 790 511 (Vodafone CR)
>
> 2014-11-12 22:52 GMT+01:00 Martin Kubát <[email protected]>:
>
>> Ahoj.
>> V COEXu to pouzivame podobne jako ty. Jen nedavame jako prvni nulu ale
>> jednicku. Duvodem je "if privacy:"...
>>
>> Dalsi argument pro cisla muze byt moznost řadit (ruzne levely v choices,
>> kde by razeni dle znaku bylo nesmysl), lepsi prace s db indexem (flame?) a
>> asi jista normalizace dat.
>>
>> Martin Kubát
>> Dne 12.11.2014 22:21 "yedpodtrzitko" <[email protected]> napsal(a):
>>
>> Hola,
>>> zajimalo by me, jak implementujete choices u db fieldu. Jsem zvykly
>>> pouzivat IntegerField, ktery vypada napriklad takhle:
>>>
>>> PRIVACY_CHOICES = (
>>>     (0, "private"),
>>>     (1, "friends"),
>>>     (2, "public"),
>>> )
>>>
>>> class Dashboard(models.Model):
>>>     privacy = models.IntegerField(_("Dashboard privacy"), choices=
>>> PRIVACY_CHOICES)
>>>
>>> Pri CR me kolega osocil, ze je to zbytecna optimalizace a mel bych tam
>>> sypat primo ty stringy, jinak ze v databasi nebudu mit kontext, co ktera
>>> ciselna hodnota znamena.
>>>
>>> Jakym zpusobem implementujete choices vy a co si myslite o jeho vyse
>>> uvedenych argumentech?
>>>
>>> _
>>>
>>> --
>>> --
>>> E-mailová skupina [email protected]
>>> Správa: http://groups.google.cz/group/django-cs
>>>
>>> ---
>>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
>>> „django-cs“ ve Skupinách Google.
>>> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
>>> zašlete e-mail na adresu [email protected].
>>> Další možnosti najdete na https://groups.google.com/d/optout.
>>>
>>  --
>> --
>> E-mailová skupina [email protected]
>> Správa: http://groups.google.cz/group/django-cs
>>
>> ---
>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
>> „django-cs“ ve Skupinách Google.
>> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
>> zašlete e-mail na adresu [email protected].
>> Další možnosti najdete na https://groups.google.com/d/optout.
>>
>
>  --
> --
> E-mailová skupina [email protected]
> Správa: http://groups.google.cz/group/django-cs
>
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu [email protected].
> Další možnosti najdete na https://groups.google.com/d/optout.
>

-- 
-- 
E-mailová skupina [email protected]
Správa: http://groups.google.cz/group/django-cs

--- 
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
e-mail na adresu [email protected].
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Reply via email to