モデルで指定された特定のユーザーがモデルのフィールドのいくつかを変更できるようにする必要があります。私はプロセス全体を制御するパーミッションクラスを作成する必要があることを知っていますが、それをどうするかわかりません。 は、ここでのコードサンプルです:Django - 指定されたユーザーが特定のモデルフィールドを変更できるようにする
class Task(models.Model):
creator = models.ForeignKey('auth.User', related_name='created_tasks', on_delete=models.CASCADE)
target = models.ForeignKey(User, related_name='assigned_tasks', on_delete=models.CASCADE)
title = models.CharField(max_length=100)
description = models.TextField()
created = models.DateTimeField(auto_now_add=True)
deadline = models.DateTimeField()
priority = models.CharField(max_length=50, choices=PRIORITY_CHOICES, default='NORMAL')
progress = models.CharField(max_length=50, choices=PROGRESS_CHOICES, default='ASSIGNED')
is_finished = models.BooleanField(default=False)
だから私は唯一の進歩とis_finishedフィールドを変更するために、ターゲットを許可します。
私はDjangoRestFrameworkを使用していますが、それが役立つかどうかはわかりません。 メソッドを作成して、ユーザー== targetかどうかをチェックし、他のすべての変更を無視するか、それを行う権限を作成できるかどうかを確認する必要があります。
は、私が持っている問題は、すべてのユーザーがタスクを作成し、仕上げのための責任者を指定することができ、事実である答え いただきありがとうございますタスク(ターゲット)。 私が正しい場合、特定のタスクにグループの権限を割り当てることはできません。 –
それらを作成、編集、削除する権限が異なると、誰もが作成権限を持つことができますが、特定のgoupのみが編集や削除を許可します。 –