আপনার নিজের স্টোরেজটি সংজ্ঞায়িত করা উচিত, ফাইলসিস্টেমস্টোরেজ থেকে উত্তরাধিকারী হওয়া এবং OS_OPEN_FLAGS
শ্রেণীর বৈশিষ্ট্য এবং get_available_name()
পদ্ধতি ওভাররাইড করা উচিত :
জ্যাঙ্গো সংস্করণ: ৩.১
প্রকল্প / কোর / ফাইল / স্টোরেজ / ব্যাকেন্ডস / স্থানীয়.পি
import os
from django.core.files.storage import FileSystemStorage
class OverwriteStorage(FileSystemStorage):
"""
FileSystemStorage subclass that allows overwrite the already existing
files.
Be careful using this class, as user-uploaded files will overwrite
already existing files.
"""
OS_OPEN_FLAGS = os.O_WRONLY | os.O_TRUNC | os.O_CREAT | getattr(os, 'O_BINARY', 0)
def get_available_name(self, name, max_length=None):
"""
This method will be called before starting the save process.
"""
return name
আপনার মডেলটিতে আপনার কাস্টম ওভাররাইট স্টোরেজটি ব্যবহার করুন
myapp / Model.py
from django.db import models
from core.files.storages.backends.local import OverwriteStorage
class MyModel(models.Model):
my_file = models.FileField(storage=OverwriteStorage())
FileField
। যখনই একটিFileField
সংরক্ষণ করা হয় তখনই ফাইলটির একটি নতুন অনুলিপি তৈরি হয়। এটি এড়াতে কোনও বিকল্প যুক্ত করা মোটামুটি সোজা হবে।