私は、次のモデルがあります:ジャンゴ・ガーディアン権限 - 上対多の関係にあるオブジェクトのためのアクセス許可を設定する
プロジェクト:
class Project(models.Model):
project_name = models.CharField(max_length=100, unique=True)
SearchCodes:から
class SearchCode(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
search_code = models.CharField(max_length=3)
search_code_modifier = models.CharField(max_length=1)
class Meta:
unique_together = ('project', 'search_code', 'search_code_modifier',)
をDjango-Guardian docs Django管理者の権限を設定することができます。次に、プロジェクトの場合、次のようなビューでユーザーを確認/制限することができます。
def project_edit(request, pk_project):
project = get_object_or_404(Project, pk=pk_project)
project_name = project.project_name
user = request.user
# Check user permission at the object level by passing in this specific project
if user.has_perm('myApp.change_project', project):
...do something
ここで私は立ち往生しています。 Django-Adminのプロジェクトに関連するすべてのSearchCodesに対する権限を設定するにはどうすればよいですか?私はSearchCodeに対してオブジェクトレベルの権限を設定したくありません - それはSearchCodeのすべてのインスタンスにすぎません。むしろ私は管理者に設定する必要があります:
このプロジェクトに関連するすべてのSearchCodeを見ることができますが、他のSearchCodesは表示できません。
もっと具体的にする必要がある場合は教えてください。できるだけジェネリックとして保存しようとしています。
ありがとうございました - ご協力いただきありがとうございます。
EDIT:
私はジャンゴ・ガーディアンでプロジェクト・オブジェクト・レベルの権限を設定するにはAdmin-Integration例を使用していました。
この時点で、私はこのプロジェクトのオブジェクト - 権限ページにいる間、この特定のプロジェクトインスタンスに関連するすべてのSearchCodesのアクセス許可を設定する方法があるはずです。
ありがとうございます。これは、設定された後にパーミッションをチェックするのに非常に役立ちますが、私はDjango-AdminのSearchCodesでパーミッションを設定する方法についてのポインタやチュートリアルなどを探しています。私はおそらく、私はおそらくこの概念を使用し、SearchCodeレベルで自分の権限をロールすることができます - 私はむしろ管理者でそれを行うだろう - ユーザーのために、一貫性:) – beginAgain