2016-06-29 18 views
0

私はDjangoのユーザーアカウント管理システムを使用してアカウントとログイン/ログアウトユーザーを作成しています。私が問題を抱えているところは、自分のウェブサイトが各ユーザーに対して作成するユーザー文書をどこにどのように保存するかを把握することです。Django、ユーザーデータの管理

私のウェブサイトの目的は、生徒用の学校の書類を適切にフォーマットすることです。彼らは自分のアカウントでこれらの作成された文書にアクセスする必要があります。

今は、Amazon S3 Webサービスを使用してドキュメントを保管しています。どのようにしてユーザーに文書を添付し、アクセスできるようにすることができますか?ユーザーの電子メールを使用してドキュメントを探すことを考えましたが、変更した場合にはアクセスできなくなりました。それが意味をなさない...

この意見は、意見に基づいているのではなく、「How-To」に基づいていると考えてください。どんな答えも高く評価されます。

おかげで、私はこれは、ユーザーがアクセス権を持つべき文書を表し、別のモデルである実装し

答えて

0

方法。このモデルには含まれています:

  • settings.AUTH_USER_MODELモデル
  • ファイルへのパスへのForeignKeyをS3に見られるような(全体のURL、または単に接頭辞のいずれかを/キー詳細はを構築することができ設定に基づいた完全なURLです(たとえば、ストレージプロバイダの変更や、S3からRackspaceクラウドへのすべてのデータの移行が行われた場合、設定を変更するのは、数十万のレコードを潜在的にトラッキングし、 django-storagesを使用すると、ファイルフィールドモデルフィールドが半自動化され、指定されたS3ロケーションへのファイル自体のアップロードが処理されます。また、必要に応じて他のファイルストレージバックエンドをサポートする利点もあります願うかもしれない。
  • 説明のドキュメント名/コメント/タイトルフィールド
  • 作成された/最後に変更されたタイムスタンプ。

このモデルは、「文書」と呼ばれていた場合は、user.document_set.all()を介してユーザに属するすべてのドキュメントにアクセスすることができると思います(私はuser.documents.all()に、これはよりよい作るためにdocumentsuserのForeignKeyにrelated_nameを設定したいです)。ユーザーがメールアドレスを変更した場合は、代わりにユーザーモデルにデータベースのプライマリキーを使用しているので問題ありません。