2016-05-14 3 views
0

Django 1.8を使用してユーザーがサインアップできるDjangoアプリを構築していますが、Webサイトの使用中に多数のファイルをアップロードすることがあります。Djangoユーザーが任意の数のファイルをアップロードしたい場合

これはDjangoでFileFieldがデータベース列であり、ユーザーが新しいファイルをアップロードするたびに列を追加できないように思われるため、問題です。

また、これらのファイルは固定システムに準拠していない可能性があります。passportまたはleaseという列を持つことができません。FileFieldを説明付きで囲み、どこかのデータベースに格納します。これはDjangoのベストプラクティスでどのように行われますか?

+0

さまざまなアプローチがありますが、そのうちの1つは、FileField、説明フィールド、およびあなたのメインモデルへのForeignKeyを持つ「Attachment」モデルを作成することです。 – Selcuk

答えて

1

この問題は、ファイルにのみ適用されるのではなく、ユーザーが任意の数のデータを追加したい場合に適用されます。そして解決策は同じです:外部キーを持つ別のテーブルをユーザーに定義します。

class UserUpload(models.Model): 
    file = models.FileField(...) 
    description = models.CharField(...) 
    user = models.ForeignKey(User) 

user.userupload_set.all()ですべてのユーザーのアップロードを取得できます。

関連する問題