したがって、私はDjangoの管理パネルをカスタマイズして、さまざまなレベルのアクセスと権限で異なるロールを作成しています。異なる役割については、特定のモデルに対して異なるフィールドを表示する必要があります。例えば は、のは、私は以下のモデルを持っているとしましょう:タプルにすべてのフィールド名を入力せずにget_fieldsのすべてのフィールドを取得する
class Venue(models.Model):
venue_name = models.CharField(max_length=255)
area = models.CharField(max_length=255)
description = models.TextField()
address = models.TextField()
contact_info = models.CharField(max_length=100)
email = models.EmailField()
さらに、私は、DjangoのUserクラスを拡張して、ユーザロールを定義する整数値をとるUSER_TYPEと呼ばれるフィールドを定義しています。
@admin.register(Venue)
class VenueAdmin(admin.ModelAdmin):
def get_fields(self, request, obj=None):
if request.user.user_type == 1:
return ('sport','venue')
elif request.user.user_type == 2:
return ('sport', 'venue', 'description', 'address')
を:今、私はそうUSER_TYPEの== 2で== 1、最初の4つのフィールドをUSER_TYPEするだけ最初の2つのフィールドを表示したい、私はadmin.pyに次のように書いた
これは2人のユーザーにとってうまくいきます。私が直面している問題は、スーパーユーザーとしてログインするときに "Nonetype is iterable not"エラーが発生することです。ですから、私が持っている質問は、タプルのすべてのフィールド名を1つずつ書き込むという点で、すべてのフィールドを返す簡単な方法があるということです。
非常に簡単な作業のために苦労しているような気がします。
ありがとうございました。