पर पांडस डेटाफ्रेम कैसे लिखें, मैं एक मौजूदा डीजेगो मॉडल, Agency
में एक पांडस डेटाफ्रेम में डेटा डालने का प्रयास कर रहा हूं, जो SQLite बैकएंड का उपयोग करता है। हालांकि, How to write a Pandas Dataframe to Django model और Saving a Pandas DataFrame to a Django Model पर दिए गए उत्तरों के बाद पूरे SQLite तालिका को प्रतिस्थापित किया जा रहा है और Django कोड को तोड़ दिया जाता है। विशेष रूप से, यह Django ऑटो-जनरेटेड id
प्राथमिक कुंजी कॉलम है जिसे index
द्वारा प्रतिस्थापित किया गया है जो टेम्पलेट्स को प्रस्तुत करते समय त्रुटियों का कारण बनता है (no such column: agency.id
)।मौजूदा डीजेगो मॉडल
SQLite तालिका, agency
पर पांडस to_sql का उपयोग करने का कोड और परिणाम यहां दिया गया है।
models.py
में:
class Agency(models.Model):
name = models.CharField(max_length=128)
myapp/management/commands/populate.py
में:
class Command(BaseCommand):
def handle(self, *args, **options):
# Open ModelConnection
from django.conf import settings
database_name = settings.DATABASES['default']['NAME']
database_url = 'sqlite:///{}'.format(database_name)
engine = create_engine(database_url, echo=False)
# Insert data data
agencies = pd.DataFrame({"name": ["Agency 1", "Agency 2", "Agency 3"]})
agencies.to_sql("agency", con=engine, if_exists="replace")
कॉलिंग 'python manage.py populate
' सफलतापूर्वक तालिका में तीन एजेंसियों को जोड़ता है:
index name
0 Agency 1
1 Agency 2
2 Agency 3
हालांकि, ऐसा करने से बदल गया है तालिका का डीडीएल:
CREATE TABLE "agency" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(128) NOT NULL)
को
:
CREATE TABLE agency (
"index" BIGINT,
name TEXT
);
CREATE INDEX ix_agency_index ON agency ("index")
मैं कैसे मॉडल Django द्वारा प्रबंधित करने के लिए DataFrame जोड़ सकते हैं और Django ORM बरकरार रख सकते हैं?