0

私はdjangoを使用してWebサイトを設計しています。ウェブサイトのアイデアは、写真家を持つことであり、各写真家にはアルバムまたは複数のアルバムがあり、各アルバムには 1 つまたは複数の写真があります。現在私は持っています:

class Photo(models.Model):
    name=models.ForeignKey('Album')
    p=models.ImageField()
    def __unicode__(self):
        return self.name
class Album(models.Model):
    name=models.ForeignKey('Photographer')
    def __unicode__(self):
        return self.name
class Photographer(models.Model):
    name=models.ForeignKey('User')
    def __unicode__(self):
        return self.name

問題は、同じデザインの場合、写真家ごとにディレクトリを作成し、アルバムごとに親ディレクトリに別のディレクトリを作成してから、写真をそのアルバムのディレクトリに保存するか、データベースに保存するかということです。私はそれが初心者の質問であることを知っていますが、本当に助けが必要です. 他に使いやすいデザインがあれば教えてください。

前もって感謝します、アブドゥル

4

3 に答える 3

1

はい、データベースではなく、ファイル システムに写真を直接保存します。これは、主にパフォーマンスに関連する多くの理由で理にかなっている一般的な方法です。

何千枚もの写真があると予想される場合は、それらを 1 つのディレクトリに保持しないでください。一般的なシステムでパフォーマンスの問題が発生する可能性があります。代わりに、アプリケーションに適した単純な階層を設計してください。

于 2012-12-01T02:33:16.910 に答える
0

写真家やアルバムのディレクトリを作成する必要はありません。それがデータベースの目的です。すべての写真家とアルバムのアップロードされたすべての画像を含む1 つの巨大なフォルダー (で指定upload_to) を作成し、どの写真がどの写真家/アルバムに属しているかを追跡するためのデータベースを作成できます。

ちなみに、次のupload_toパラメーターを指定する必要がありますImageField

models.ImageField(upload_to='images/')

本当に各アルバムのフォルダーを作成したい場合は、関数をupload_toパラメーターに渡し、そこに必要なロジックを追加できます...詳細については、こちらのドキュメントを参照してください。

于 2012-12-01T02:34:02.483 に答える