मेरे पास मेरे django एप्लिकेशन में पृष्ठभूमि कार्य है, जो एक सीएसवी से सभी पंक्तियों को मेरे डेटाबेस में तालिकाओं में से एक में दर्ज करता है। मैं व्यवस्थापक साइट के माध्यम से सीएसवी पास करता हूं, जो एक पृष्ठभूमि कार्य बनाता है, जिसे मैं python manage.py process_tasks के साथ चला सकता हूं। यह सब स्थानीय रूप से काम करता है, लेकिन मेरे हरोकू ऐप पर, किसी कारण से ऐसा नहीं होता है।

मैंने सोचा कि शायद हेरोकू कंसोल से डेटा इनपुट करना असंभव है, लेकिन अगर मैं उसकेोकू कंसोल पर python manage.py shell चलाता हूं, तो मैं डेटा को ठीक से इनपुट कर सकता हूं।

यह वह कोड है जो डेटा को डेटाबेस में इनपुट करता है:

from background_task import background

...

@background(schedule=5)
def save_course_from_df(df):
    df = pandas.read_json(df)
    db = 0
    for index, row in df.iterrows():
        print("%s percent done!" % str(db / df.shape[0]))
        db += 1
        values = dict(row)
        values = {key: values[key] for key in values.keys()
                  if type(values[key]) != float or not math.isnan(values[key])}
        try:
            Course.objects.update_or_create(
                url=row['url'],
                defaults=values
            )
        except IntegrityError:
            pass
    print('done!')

मैं इसे उसकेोकू कंसोल खोलकर और 'पायथन मैनेज.पी प्रोसेस_टास्क' चलाकर चलाता हूं। मुझे प्रिंट संदेश मिलते हैं, और कोई त्रुटि नहीं डाली जा रही है। फिर भी, मेरा डेटाबेस नहीं बदलता है।

मुझे उम्मीद थी कि कार्य चलने के बाद मेरे पास एक पूर्ण तालिका होगी। इसके बजाय, कुछ भी नहीं बदला।

0
Artúr Bella 21 मई 2019, 17:50

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि समस्या मेरे प्रवास के साथ थी। किसी कारण से उसकेोकू ऐप पर डेटाबेस में कॉलम के लिए शून्य बाधा नहीं थी जिसका मॉडल शून्य = सही तर्क था।

0
Artúr Bella 21 मई 2019, 15:14