スタッフだけにタスクを割り当てたい。したがって、dorpdownリストには、is_staff = Trueの役割を持つユーザーのみを表示する必要があります。
しかし、私のドロップダウンリストには、データベースで使用可能なすべてのユーザー(Superuser、Authority、General_user)が表示されます。
ドロップダウンリストにスタッフのみを表示するようにこれを変更するには、2人のユーザーにスタッフの役割を割り当てたため、2人のユーザーのみを表示する必要があります...?
私のモデルクラス:
カスタムユーザーモデル:
class User(AbstractBaseUser, PermissionsMixin):
"""
Responsible for handleing App user's data
"""
email = models.EmailField(max_length=255, unique=True)
nid = models.CharField(max_length=30, unique=True)
username = models.CharField(max_length=20, blank=True, null=True)
date_of_birth = models.DateTimeField(blank=True, null=True)
first_name = models.CharField(max_length=50, blank=True, null=True)
last_name = models.CharField(max_length=50, blank=True, null=True)
image = models.FileField(
upload_to=FileManager.photo_path, null=True, blank=True)
is_active = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_authority = models.BooleanField(default=False)
is_specialist = models.BooleanField(default=False)
is_general_user = models.BooleanField(default=False)
timestamps = models.DateTimeField(auto_now_add=True)
update = models.DateTimeField(auto_now=True)
objects = user_manager.UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['nid']
タスクモデル
class Task(BaseAbstractModel):
'''
Responsible for Storing and Providing Tasks data
'''
assignment = models.ForeignKey(Assignment,
on_delete=models.DO_NOTHING,
related_name='+')
assigne_to = models.ForeignKey(User,
on_delete=models.DO_NOTHING,
related_name='+')
task_name = models.CharField(max_length=300)
is_done = models.BooleanField(default=False)
created_by = models.ForeignKey(User,
on_delete=models.DO_NOTHING,
related_name='created_by')
シリアライザー:
class TaskListSerializer(serializers.ModelSerializer):
'''
Will be serializing Task's data
'''
created_by = UserListSerializer(read_only=True)
class Meta:
model = Task
fields = ('assignment',
'assigne_to',
'task_name',
'is_done',
'created_by',)
汎用作成ビュー
class CreateTaskView(generics.CreateAPIView):
queryset = Task.objects.all()
serializer_class = TaskListSerializer
引数PrimaryKeyRelatedField
とともに使用してみてくださいqueryset
:
class TaskListSerializer(serializers.ModelSerializer):
'''
Will be serializing Task's data
'''
created_by = UserListSerializer(read_only=True)
assigne_to = serializers.PrimaryKeyRelatedField(queryset=User.objects.filter(is_staff=True))
class Meta:
model = Task
fields = ('assignment',
'assigne_to',
'task_name',
'is_done',
'created_by',)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加