2013/6/3 Jorge C. Leitão <[email protected]> Motivated by that criticism, I want to ask: why apps have to have unique > names? >
Hi Jorge, Django assumes that a model can be identified by (app_name, model_name). Long ago — 8 years ago — it didn't seem to be a problem. I'm not sure your research covers all the consequences of this assumption. Anything that hits the app cache depends on this assumption: - the target of foreign keys can be expressed as 'app_name.ModelName' - the fixture format identifies models with app_name.ModelName - several settings have a value in the form app_name.ModelName - django.contrib.contenttypes uses (app_name, model_name) to identify each model - since permissions are tied to content types, this assumption bleeds to django.contrib.auth - etc. Lifting the requirement of uniqueness would require switching anything that uses the app_name.ModelName format to full.path.to.app.ModelName. That would be quite disruptive, not only for Django, but for the entire ecosystem of apps, starting with contrib apps. The real question is -- what's the story for authors of pluggable apps ? for users of the framework ? As far as I know, the explanation for this behavior lies in history more than in a design decision. Until now, no one judged this to be enough of a problem to make a proposal to fix it. To be honest, it's frighteningly hard to fix. Even app-loading (ticket #3591) doesn't tackle it. -- Aymeric. -- 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?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
