0

管理パネルでフィールドセットを使用して、関連するフィールドをグループ化/タイトル付けしています。これはスーパーユーザーでうまく機能します。一部のフィールドが除外されているスタッフとしてログインすると、エラーが発生します。

レンダリング中に KeyError をキャッチ: キー 'A' がフォームに見つかりません

以下の簡単な例では、私がスーパー ユーザーの場合、すべてうまく機能します。スタッフユーザーとしてログインすると、コードでフィールドセットが除外され、次のエラーが表示されます。

models.py:

class Cars(models.Model):
   A = models.CharField('A', ...)
   B = モデル....
   C = モデル...
   D = モデル...

admin.py:

class CarsAdmin(admin.ModelAdmin):
  fieldsets = (_('最初のグループ'},{'fields'sad('A','B'),('C','D'),)})
     def get_form( self,request,obj=None, **kwargs):
       self.exclude = []
       request.user.is_superuser でない場合:
         self.exclude.append('A')
       return super(CarAdmin,self).get_form(request, obj) =なし、**kwargs)

要点は、フィールドセットによって提供されるグループ化を維持したいということです。

フィールドセットを条件付きで設定する方法を知っている人はいますか??

4

1 に答える 1

0

に追加するときは、Aフィールドも削除する必要があります。self.fieldsetsself.exclude

于 2010-08-01T19:05:33.577 に答える