つまり、すべてのアプリケーションで、入力したデータ以外の編集や表示をユーザーに許可しないようにしたいと考えています。Django admin - 自分の入力データのみにユーザーのアクセスを制限することはできますか?
私はhereを読んでいます。これは、管理アプリケーションに組み込まれていない可能性があります。もしそうなら、延長がありますか?
おかげ
つまり、すべてのアプリケーションで、入力したデータ以外の編集や表示をユーザーに許可しないようにしたいと考えています。Django admin - 自分の入力データのみにユーザーのアクセスを制限することはできますか?
私はhereを読んでいます。これは、管理アプリケーションに組み込まれていない可能性があります。もしそうなら、延長がありますか?
おかげ
は、管理者の拡張についていくつかの基本的な情報については、このブログ記事を参照してください:http://www.b-list.org/weblog/2008/dec/24/admin/
それは行うことができます。 まずadmin.pyに適切なmodelAdminを作成する必要があります。あなたは適切なメソッドをオーバーライド制限したいフィールドのタイプに応じて、フィールドのフィルタリングについて
class MyModelAdmin(admin.ModelAdmin):
def queryset(self, request):
return Entry.objects.filter(owner=request.user)
:
はリストについては、「表示」フィルタリングがqueryset方法を変更します。
関連Djangoのドキュメントはここにある: https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey
のForeignKeyフィールド出力を制限するには、あなたがこのような何か行うことができます。 (Djangoのドキュメントから)
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "car": # The name of the field you want to limit
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
をこのブログの記事は、私の質問のすべてに答え、ありがとうございました! –
よろしくお願いいたします。ジェームズの記事は非常に貴重です。 – Brandon
私は今、彼のブログの正式な信者です:) –