Hi, I created a ticket, incl. patch
https://code.djangoproject.com/ticket/18062 Am 04.04.2012 18:41, schrieb Adrian Holovaty:
2012/4/3 Łukasz Langa<[email protected]>:Explicit choice values:: GENDER_MALE = 0 GENDER_FEMALE = 1 GENDER_NOT_SPECIFIED = 2 GENDER_CHOICES = ( (GENDER_MALE, _('male')), (GENDER_FEMALE, _('female')), (GENDER_NOT_SPECIFIED, _('not specified')), ) class User(models.Model): gender = models.IntegerField(choices=GENDER_CHOICES, default=GENDER_NOT_SPECIFIED) def greet(self): if self.gender == GENDER_MALE: return 'Hi, boy.' elif self.gender == GENDER_NOT_SPECIFIED: return 'Hello, girl.' else: return 'Hey there, user!' This is a saner way but starts getting overly verbose and redundant. You can improve encapsulation by moving the choices into the ``User`` class but that on the other hand beats reusability.I don't see the immediate need for Yet Another Sub-framework, as described in this proposal. This is what I normally do, and it works fine: class User(models.Model): MALE = 0 FEMALE = 1 GENDERS = [(MALE, 'Male'), (FEMALE, 'Female')] gender = models.IntegerField(choices=GENDERS) def greet(self): return {MALE: 'Hi, boy', FEMALE: 'Hi, girl.'}[self.gender] If people aren't understanding that, we should improve our documentation. Also, the fact that we *don't* have a sub-framework for this lets people do whatever they want -- including using the dj.choices module. So I am -1 on including this in Django proper. Adrian
-- Thomas Guettler, http://www.thomas-guettler.de/ E-Mail: guettli (*) thomas-guettler + de -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
