【发布时间】:2021-12-19 09:08:26
【问题描述】:
我有一个自定义用户模型:
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
is_worker = models.BooleanField(default=False)
is_customer = models.BooleanField(default=True)
def __str__(self):
return f'{self.username} - {self.is_worker}'
我有这个模型服务:
from django.db import models
from users.models import CustomUser
SERVICE_CHOICES = (
('Carpenter', 'Carpenter'),
('Driver', 'Driver'),
('Ambulanve', 'Ambulanve'),
('Spa', 'Spa'),
('Barber', 'Barber'),
('Cleaning', 'Cleaning'),
('Cook', 'Cook'),
)
class Service(models.Model):
name = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
service = models.CharField(choices=SERVICE_CHOICES,max_length=100)
def __str__(self):
return f'{self.service} - {self.name}'
在服务模型中,我使用 CustomUser 模型作为名称。然而,我只需要is_worker = True 的名称。在我的代码中,无论状态如何,我都会获得所有用户。怎么改?
【问题讨论】:
-
来自文档:“但是,如果您发现自己的黑客选择是动态的,那么最好使用带有 ForeignKey 的适当数据库表。”
-
@KlausD。能详细解释一下吗?
-
阅读
choices上的文档!
标签: python python-3.x django django-models