में फ़ाइलों का नाम बदलना मुझे पता है कि यहां एक बहुत ही समान धागा है, लेकिन मुझे मेरी समस्या का हल नहीं मिल रहा है।Django FileField
मैं एक फ़ाइल जो Django models.FileField में बचाने
मैं इस
os.rename(old_path, new_path)
mod.direct_file = File(open(new_path))
mod.save()
और यह
mod.direct_file.save(new_path, File(open(old_path)))
os.remove(old_path)
और कई अन्य तरीकों की कोशिश की है नाम बदलने की आवश्यकता है, लेकिन कुछ भी नहीं लग रहा था मदद। सभी तरीकों से एक नई फाइल बनाई गई है, हालांकि, फ़ाइलफील्ड में डेटा बिल्कुल नहीं बदलता है।
संपादित करें: हल
os.rename(old_path, new_path)
cursor = connection.cursor()
cursor.execute("UPDATE mods_mod SET direct_file = %s WHERE id = %s", [new_name, mod.id])
transaction.commit_unless_managed()
ओपन पद्धति पहले से ही फ़ाइल सौंपा खुलता है। फील्डफाइल के पास कोई अन्य फ़ाइल खोलने की कोई विधि नहीं है। – aemdy
फ़ाइल फ़ाइलफिल्ल्ड के माध्यम से असाइन की गई है, सही? क्या आप अपने मॉडल में सभी फाइलों या मॉडल के एक उदाहरण को बदलने की कोशिश कर रहे हैं? – droxey
मैं फ़ाइल 'direct_file = models.FileField (डिफ़ॉल्ट = कोई नहीं, खाली = सही, शून्य = सही, upload_to = "mod_files") का नाम बदलना चाहता हूं, इस क्षेत्र में अपलोड किया गया है। – aemdy