ファイルをクロールし、メタデータを表示および検索できるようにするDjangoファイルブラウザーアプリを作成しています。
最初にファイルを「ファイル」オブジェクトとして入力した後、ファイルの拡張子に基づいて「ビデオ」、「音楽」、または「ドキュメント」を作成したいと思います。
いくつかの模擬モデル...
class File(models.Model):
createdate = models.DateTimeField('date file entered', db_index=True, auto_now_add=True)
cdate = models.DateTimeField()
hash = models.CharField(max_length=14, default=_make_hash, unique=True)
slug = models.SlugField(blank=True, unique=True)
filename = models.CharField(db_index=True, max_length=2048)
fullpath = models.CharField(max_length=2048)
folder = models.CharField(max_length=2048)
class Video(models.Model):
createdate = models.DateTimeField('date file entered', db_index=True, auto_now_add=True)
imdblink = models.CharField(max_length=2048)
container = models.CharField(max_length=2048)
class Music(models.Model):
createdate = models.DateTimeField('date file entered', db_index=True, auto_now_add=True)
bitrate = models.CharField(max_length=2048)
artistname = models.CharField(max_length=2048)
songname = models.CharField(max_length=2048)
class FileType(models.Model):
typename = models.CharField(max_length=256)
extension = models.ForeignKey(FileExtension)
class FileExtension(models.Model):
extension = models.CharField(max_length=256)
- ビデオのFileTypeは、「avi、mpg、mp4、mkv」で作成され、音楽は「mp3、flac」で作成されます。
- Djangoアプリは、Video1.avi、Video2.mpg、Song1.mp3、Song2.flacなどで実行されます。これらはFileオブジェクトとしてデータベースに入力されます。
- Fileオブジェクトを保存すると、アプリはファイル拡張子を確認し、それをリストと比較して、FileTypeモデルによってレイアウトされた適切なモデルを選択します。
アプリを変更せずに追加または削除できるように、モデル選択パラメーターをデータベースエントリとして保持したいと考えています。
FileTypeエントリをどのモデルにするかがわかりません。
任意のアドバイスや入力をいただければ幸いです。