I think if I were doing this, I would write a custom management command 
<https://docs.djangoproject.com/en/1.9/howto/custom-management-commands/> 
to update the tables, and run it at system startup time. Management 
commands are easy to debug and well documented.

On Tuesday, March 8, 2016 at 10:38:25 AM UTC-7, Julien Greard wrote:
>
> Hello,
>
> I am using Django 1.9.3. I have a project with several apps. I would like 
> to update the tables of one of the app at the startup of the project.
>
> I have all the code written, it looks like the following (it's an example):
>
> from my_app.models import My_table
>
> def on_startup():
>      my_thread = Thread(execute = populate_tables, loopmode = True, 
> background = True) *# thread running in loopmode in background*
>      my_thread.start() *# starts the thread and returns*
>
> def populate_tables()
>      response = call_webservice() *# let's imagine this method returns 
> data for creating a new model instance*
>      My_table(response).save() # this save() isn't threadsafe in this 
> example, but that's not my point ;-)
>
> So far, with Django 1.6.5, I came with some code from the __init__.py file 
> of my app. It was working, but I thought it was quite ugly (starting a 
> thread with an "import" looks really like hidden code).
>
> I saw in Django 1.9 the "ready()" method. But it's written in the 
> documentation to not deal with models in this method so I am confused.
>
> I could add the startup code in the command starting my server but this 
> startup code is app oriented and in my opinion, the projects has nothing to 
> do with my app.
>
> What do you recommend?
>
>
> I'd be happy to provide more info if needed.
>
> Thanks in advance,
>
> Julien Gréard
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
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/49d4a061-973e-4e54-b99a-383fdbcb2822%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to