On Thursday 09 March 2017 14:07:45 Charles Thayer wrote: > * Examples: is there a canonical example app that covers enough ground > to be _the_ "best practices" example?
An "app" is a very loosely defined term. There has been work to come to a "reusable app standard[1]". But since there's no certification, stickers, prestige, increased revenue or princess in a tower incentive - in practice a good ammount of developers don't know about it let alone adhere to it. So, there's not really a solid standard to reference your "best practices" against. > * Examples templates: I include a eg_urls.py and > templates/eg/index.html so that people could bring it up and try it > out under a standalone test project. Is there a common way to do > this? If I have to download an example project for an app, the documentation is lacking. If I want to see if it does it's job, I prefer a working demo (and my goal is then to see if I can break it). > * Ajax: Turns out that I only ever implemented ajax methods in this > app, and they're all in views.py. I see other projects sometimes use > ajax.py or api.py, would that be better? Ajax.py is common, but in itself has no benefit. Api.py is a bad choice. It's used by some apps for providing the API for the app. > * Implementation: For the app, I wanted to be able to like / bookmark > any object in the system. Some folks use an abstract model mixin > which creates a new table for every model that needs "like" support. > I just create a single UserLink Model with a generic foreign field > (and ContentType) instead. Is there a best practice around this? Yes, the contenttype approach. Apps who alter the database schema at runtime should be shot. > * Dependencies: I have a small amount of JS which depends on JQuery, > animateCss, and Font Awesome. Is there a standard way to express > these dependencies or should this be somehow simplified / ripped > out. Whatever you do, do not auto-inject JQuery. Use two settings instead: - include_jquery: boolean - jquery_url: string Example: Django Bootstrap3[2]. I also like the dictionary approach to settings (another example of that: Django CKEditor[3] ). You could use Django FontAwesome[4] as a requirement and let it handle the icons. Projects already using it, will appreciate it. > * JS.html: I have some templates which generate javascript which > include some {% url %} lookups. Is this acceptable, or is generated > js from templates a bad idea. It's fine. It's how you handle breakage that matters. One of the most annoying things about reusable apps is that quite a few don't namespace their lookups. So in a project I cannot re-namespace them to resolve conflicts. > * Using apps: I found the workflow quite painful because I'm putting > the app in github but my project is actually in a different repo > (public vs private). To manage this I have 3 directories --is there > a better way? Yes, git submodules. -- Melvyn Sopacua -------- [1] http://django-reusable-app-docs.readthedocs.io/en/latest/ [2] http://django-bootstrap3.readthedocs.io/en/latest/settings.html [3] https://github.com/django-ckeditor/django-ckeditor#optional-customizing-ckeditor-editor [4] https://pypi.python.org/pypi/django-fontawesome -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/12564123.Wd3hS0BBDz%40devstation. For more options, visit https://groups.google.com/d/optout.