Search engine scraper-aggregator
The test if (so.scan_complete and force) or not so.scan_complete: only fails when so.scan_complete is True and force is False. So it can be simplified to if force or not so.scan_complete:.

Also, since the test is identical for every src, it only needs to be done once:

for src in engines:
    for query in queries:
        so = Source.objects.get(term__term=query, engine=src)
        if force or not so.scan_complete:
            if src == 'alibaba':
                ali_results.delay(src, query)
            elif src == 'madeinchina':
                made_results.delay(src, query)
            elif src == "google" or src == "bing":
                search_engine_scraper.delay(query=query, source=src)