Andrew Cooke | Contents | Latest | RSS | Previous | Next

C[omp]ute

Welcome to my blog, which was once a mailing list of the same name and is still generated by mail. Please reply via the "comment" links.

Always interested in offers/projects/new ideas. Eclectic experience in fields like: numerical computing; Python web; Java enterprise; functional languages; GPGPU; SQL databases; etc. Based in Santiago, Chile; telecommute worldwide. CV; email.

Personal Projects

Choochoo Training Diary

Last 100 entries

Surprise Paradox; [Books] Good Author List; [Computing] Efficient queries with grouping in Postgres; [Computing] Automatic Wake (Linux); [Computing] AWS CDK Aspects in Go; [Bike] Adidas Gravel Shoes; [Computing, Horror] Biological Chips; [Books] Weird Lit Recs; [Covid] Extended SIR Models; [Art] York-based Printmaker; [Physics] Quantum Transitions are not Instantaneous; [Computing] AI and Drum Machines; [Computing] Probabilities, Stopping Times, Martingales; bpftrace Intro Article; [Computing] Starlab Systems - Linux Laptops; [Computing] Extended Berkeley Packet Filter; [Green] Mainspring Linear Generator; Better Approach; Rummikub Solver; Chilean Poetry; Felicitations - Empowerment Grant; [Bike] Fixing Spyre Brakes (That Need Constant Adjustment); [Computing, Music] Raspberry Pi Media (Audio) Streamer; [Computing] Amazing Hack To Embed DSL In Python; [Bike] Ruta Del Condor (El Alfalfal); [Bike] Estimating Power On Climbs; [Computing] Applying Azure B2C Authentication To Function Apps; [Bike] Gearing On The Back Of An Envelope; [Computing] Okular and Postscript in OpenSuse; There's a fix!; [Computing] Fail2Ban on OpenSuse Leap 15.3 (NFTables); [Cycling, Computing] Power Calculation and Brakes; [Hardware, Computing] Amazing Pockit Computer; Bullying; How I Am - 3 Years Post Accident, 8+ Years With MS; [USA Politics] In America's Uncivil War Republicans Are The Aggressors; [Programming] Selenium and Python; Better Walking Data; [Bike] How Fast Before Walking More Efficient Than Cycling?; [COVID] Coronavirus And Cycling; [Programming] Docker on OpenSuse; Cadence v Speed; [Bike] Gearing For Real Cyclists; [Programming] React plotting - visx; [Programming] React Leaflet; AliExpress Independent Sellers; Applebaum - Twilight of Democracy; [Politics] Back + US Elections; [Programming,Exercise] Simple Timer Script; [News] 2019: The year revolt went global; [Politics] The world's most-surveilled cities; [Bike] Hope Freehub; [Restaurant] Mama Chau's (Chinese, Providencia); [Politics] Brexit Podcast; [Diary] Pneumonia; [Politics] Britain's Reichstag Fire moment; install cairo; [Programming] GCC Sanitizer Flags; [GPU, Programming] Per-Thread Program Counters; My Bike Accident - Looking Back One Year; [Python] Geographic heights are incredibly easy!; [Cooking] Cookie Recipe; Efficient, Simple, Directed Maximisation of Noisy Function; And for argparse; Bash Completion in Python; [Computing] Configuring Github Jekyll Locally; [Maths, Link] The Napkin Project; You can Masquerade in Firewalld; [Bike] Servicing Budget (Spring) Forks; [Crypto] CIA Internet Comms Failure; [Python] Cute Rate Limiting API; [Causality] Judea Pearl Lecture; [Security, Computing] Chinese Hardware Hack Of Supermicro Boards; SQLAlchemy Joined Table Inheritance and Delete Cascade; [Translation] The Club; [Computing] Super Potato Bruh; [Computing] Extending Jupyter; Further HRM Details; [Computing, Bike] Activities in ch2; [Books, Link] Modern Japanese Lit; What ended up there; [Link, Book] Logic Book; Update - Garmin Express / Connect; Garmin Forerunner 35 v 230; [Link, Politics, Internet] Government Trolls; [Link, Politics] Why identity politics benefits the right more than the left; SSH Forwarding; A Specification For Repeating Events; A Fight for the Soul of Science; [Science, Book, Link] Lost In Math; OpenSuse Leap 15 Network Fixes; Update; [Book] Galileo's Middle Finger; [Bike] Chinese Carbon Rims; [Bike] Servicing Shimano XT Front Hub HB-M8010; [Bike] Aliexpress Cycling Tops; [Computing] Change to ssh handling of multiple identities?; [Bike] Endura Hummvee Lite II; [Computing] Marble Based Logic; [Link, Politics] Sanity Check For Nuclear Launch; [Link, Science] Entropy and Life

© 2006-2017 Andrew Cooke (site) / post authors (content).

Using a Directory (Package) for Django's Model

From: "andrew cooke" <andrew@...>

Date: Fri, 26 Jun 2009 15:46:17 -0400 (CLT)

I couldn't find thsi documented, apart from obliquely in bug report -
http://code.djangoproject.com/ticket/2289 - but here's what you do...

Initially, in a simple app, Django assumes that your model classes live in
"models.py".  This location is read by, for example, the manager.

However, that soon becomes cluttered, and the "right way" to handle this
in Python would be to use a package (directory) rather than a single
module (file).

If you do that, and are not careful, all hell breaks loose :o(

Here's how to make it work:

- Call the directory/package "models"
- Inside that package, put all your code.
- On each model set the Meta attribute app_label to the app name
- Create an __init__.py file inside the package
- In the __init__.py file:
-- Import all your models
-- Declare them using __all__

So, for example, if I have a model class Foo in blah.models.foo (ie
blah/models/foo.py) and a model class Bar in blah.models.bar, then in
__init__.py I have:

  from blah.models.foo import Foo
  from blah.models.bar import Bar

  __all__ = ['Foo', 'Bar']


And the declaration of Foo looks like:

  class Foo(Model):
    class Meta:
      app_label = 'blah'
    ...

In this way you end up with the objects still "looking as if" they are in
blah.models (in other parts of your code you can import directly from
there) and with the correct meta data for the manager to find and use
them.

Andrew

Thank you!

From: John Samuel Anderson <john@...>

Date: Thu, 07 Jun 2012 13:31:06 -0400

In my case, I found that Django isn't able to correctly reverse admin
URLs after reorganizing the code into a "models" module. I hope your
trick helps.

Using a Directory (Package) for Django's Model

From: "Will O'Meara" <will.omeara@...>

Date: Tue, 19 Jun 2012 11:59:23 -0400

awesome post! helped me out a ton!

-- 
O'Meara
Software Engineer, AxialMarket Corps of Engineers
factum non verbum

AxialMarket
45 East 20th Street, 12th Floor
New York, NY 10003
cell: 347-948-9417

www.axialmarket.com
The largest network of active deal professionals in the world.

Great post thank you

From: Philipp Rollinger <philipp.rollinger@...>

Date: Sun, 17 Nov 2013 10:57:51 +0100

Thanks for the hint of __all__ - that was missing in my scheme.

You are based in Chile? I was there too! Greetings to Valparaiso and
Santiago!

Mit freundlichen Gr=FC=DFen | Best regards | Saludos Cordiales

*Philipp Rollinger*

Comment on this post