【发布时间】:2020-12-19 00:34:03
【问题描述】:
我只想将任务分配给员工。因此,我希望我的 dorpdown 列表应该只显示角色为 is_staff = True 的用户。
但我的下拉列表现在显示了数据库中可用的所有用户(超级用户、权限、General_user)。
如何修改它以仅在下拉列表中显示员工,因为我已经分配了两个具有员工角色的用户...?
我的模型类:
自定义用户模型:
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
【问题讨论】:
标签: django django-rest-framework