Djangoの特定のユーザーにモデルオブジェクトへのアクセスを許可する方法

プランタナスナヤン

私はDjangoでオンライン教室プロジェクトを行っています。そこでは、教師がアクセスできるcreate_courseという名前のモデルを作成しました。今、私はこれを、ログイン後に彼だけがこれを見ることができるクラスを作成する教師として設計しようとしています。別の教師は彼のクラスを見るべきではなく、私が作成した特定のクラスに生徒を追加する方法

コースモデル

class course(models.Model):
    course_name = models.CharField(max_length=200)
    course_id = models.CharField(max_length=10)
    course_sec = models.IntegerField()
    classroom_id = models.CharField(max_length=50,unique=True)

views.py

def teacher_view(request, *args, **kwargs):
    form = add_course(request.POST or None)
    context = {}
    if form.is_valid():
        form.save()
        return HttpResponse("Class Created Sucessfully")
    context['add_courses'] = form
    return render(request, 'teacherview.html', context)

forms.py

from django import forms
from .models import course

class add_course(forms.ModelForm):
    class Meta:
        model = course
        fields = ('course_name', 'course_id', 'course_sec', 'classroom_id')
B.Anup

ユーザーモデルとの関係を確立するフィールドをコースモデルにもう1つ追加します。したがって、コースを作成した教師の詳細を取得できます。

    from django.contrib.auth.models import User

    class course(models.Model):
        course_name = models.CharField(max_length=200)
        course_id = models.CharField(max_length=10)
        course_sec = models.IntegerField()
        classroom_id = models.CharField(max_length=50,unique=True)
        created_by = models.ForeignKey(User, on_delete=models.CASCADE)

ビュー機能では、ログインしているユーザーがリクエストしたコースの作成者と同じかどうかを確認できます。

    def teacher_view(request, *args, **kwargs):
        # since this is course specific view, you will be passing an identiier or pk of the course as an argument to this function.
        course_obj = Course.objects.get(id="identifier")
        if request.user == course_obj.created_by:
            # logged in user is same as the creator of the course
        else:
            # redirect

パーミッションを作成し、特定のモデルにパーミッションを設定することをお勧めします。あなたもそれを試してみることができます。うまくいかない場合はお知らせください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Plesk11ユーザーに特定のデータベースへのアクセスを許可する方法

ホームディレクトリ内の特定のフォルダへのアクセスをユーザーに許可する方法

root以外のユーザーにデバイスファイルへのアクセスを許可する方法

匿名ユーザーに仮想ディレクトリへのアクセスを許可する方法

ADユーザーオブジェクトの属性に対してPowerShellを使用して効果的なアクセス許可を取得する方法

特定のページへのすべてのユーザーへのアクセスを許可する

ルールを介して特定のユーザーに複数のFirestoreドキュメントへのアクセスを許可する方法

Firebase Realtimeルール:複数のユーザーにデータへのアクセスを許可する

Django ユーザー名を使用して別のオブジェクトにアクセスする方法は?

管理者以外のユーザーにテンプレートモジュールへのアクセスを許可する

特定のユーザーにファイルへのアクセス許可を付与する

Docker Windowsは、ビルドエージェントユーザーへのアクセスを許可します

ユーザーに自分のディレクトリ/ var / www / htmlへのアクセスを許可する

Apiプラットフォームセキュリティ-動的なユーザーグループにオブジェクトへのアクセスを許可するにはどうすればよいですか?

AWS Cognito JS s3オブジェクト(特定のhtmlページ)へのアクセスを許可する方法

Firebase(Firestore)セキュリティルール、特定のユーザーのオブジェクトへのアクセスを制限する

セッションユーザーがそのユーザーへの外部キーを持つオブジェクトのみを一覧表示できるように、django-rest-frameworkでアクセス許可を設定するにはどうすればよいですか?

認証されたユーザーにのみdjangoの特定のページへのアクセスを許可する

ルートへのアクセスを許可せずに、フォルダーに対するSSRSブラウザーのアクセス許可をユーザーに付与する方法

github以外のユーザーにリポジトリへのアクセスを許可する

sftpユーザーに/ var / wwwディレクトリへのアクセスを許可する

以前にインポートしたモジュールへのPowerShellWorkFlowアクセスを許可する方法

gitlabのリポジトリへのアクセスを許可せずにユーザーにプルリクエストの権利を与える方法

管理者アカウントのFirebaseストレージ内のユーザーフォルダへのアクセスを許可する方法

1つのフィールド(Django)へのユーザーアクセスのみを許可する

許可されたユーザーにのみ紺碧のストレージコンテナー内のBLOBURLへのアクセスを許可する

sudoアクセスなしで、ユーザーのチームにサブディレクトリの+ wアクセス許可を許可する

特定のサブドメインへのユーザーアクセスを許可する

Apache-ユーザーのホームディレクトリへのアクセスを許可する

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ