Hi All, Have you ever quickly set up a model, ran syncdb, and added a few sample objects in the admin to only see a bunch of "MyModel object"s in the changelist? I always forget to add a __unicode__()/__str__() method on my models.
I ran "git grep -1 __unicode__" on some of my django projects and noticed a lot of repeated code. In fact, it seems that in about a _third_ of all my cases, I'm just returning self.name, or returning self.name would have been a good default. I looked at a few 3rd party apps for comparison and found similar results, though not for every app. IMHO, returning self.name (if the field or property exists) is a sensible default for __unicode__. We can still return "MyModel object" if there's no "name" attribute. You'll still end up adding your own __unicode__ method much of the time, just like you always have. Yes, it's "magic", but we can document it. Yes, it's a little more confusing, but we don't have to explain it during the tutorial. Yes, it's backwards incompatible, but only in rare cases should it be a problem. Yes, it could look like any Model without a "name" field is "wrong", but it's not. Yes, "title" is also very popular, but name is better. :) It has the effect of being a little more friendly in many cases, and can result in more DRY code. What do your __unicode__/__str__ methods look like? Is this a bad idea? Thanks, Collin -- You received this message because you are subscribed to the Google Groups "Django developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers. For more options, visit https://groups.google.com/groups/opt_out.
