Python 如何设计一个可以将用户请求引导到相关应用程序视图的结构?
我正在开发一个web应用程序,通过向员工提问并从他们那里得到答案,从工厂的班次中获得反馈。目前我负责一个叫做塑料注射的领域。之后,塑料装配、塑料连接器和金属生产区域也将在我的列表中。我们可以把部门看作是部门。< /P> 在前端,我使用的是Vue.js,到目前为止没有问题。后端方面,我使用Django和Django REST框架创建了一个API。API有两个应用程序。第一个叫做“核心”应用程序。它处理身份验证,并且只有用户模型。此应用程序将有另一个用于功能计划的模型和逻辑。第二个也是最后一个叫做“塑料注射”应用程序。它有必要的模型从轮班中得到反馈 当我添加另一个应用程序,例如“塑料组件”或“塑料连接器”时,我面临的问题就会出现。在前端,用户登录,然后回答一些问题,发送他们所在班次的反馈。此时,我需要一个逻辑来知道哪个应用程序用户属于该应用程序的调用端点 我为不同的塑料区域创建不同的应用程序的原因是,尽管它的模型和逻辑几乎90%相同,但它们包含的内容和问题将不同。此外,还将为员工、团队和区域部门等建立评级系统 我考虑过在用户表中添加一列来分隔调用哪个端点,但我认为这不是正确的方法。在Google中搜索此问题时找不到任何内容 项目布局:Python 如何设计一个可以将用户请求引导到相关应用程序视图的结构?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在开发一个web应用程序,通过向员工提问并从他们那里得到答案,从工厂的班次中获得反馈。目前我负责一个叫做塑料注射的领域。之后,塑料装配、塑料连接器和金属生产区域也将在我的列表中。我们可以把部门看作是部门。< /P> 在前端,我使用的是Vue.js,到目前为止没有问题。后端方面,我使用Django和Django REST框架创建了一个API。API有两个应用程序。第一个叫做“核心”应用程序。它处理身份验证,并且只有用户模型。此应用程序将有另一个用于功能计划的模型和逻辑。第二个也是最后一个叫做“
[project]
├── [project]
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── [core]
│ ├── __init__.py
│ ├── models.py
│ ├── admin.py
│ ├── apps.py
│ ├── tests.py
│ ├── urls.py
│ ├── serializers.py
│ └── views.py
├── [plastic_injection]
│ ├── __init__.py
│ ├── models.py
│ ├── admin.py
│ ├── apps.py
│ ├── tests.py
│ ├── urls.py
│ ├── serializers.py
│ └── views.py
├── [plastic_connector] # New app
│ ├── __init__.py
│ ├── models.py
│ ├── admin.py
│ ├── apps.py
│ ├── tests.py
│ ├── urls.py
│ ├── serializers.py
│ └── views.py
└── manage.py
“核心”应用程序中的用户模型:
class User(AbstractUser):
is_director = models.BooleanField(default=False)
is_chief = models.BooleanField(default=False)
is_chief_assistant = models.BooleanField(default=False)
is_operator = models.BooleanField(default=False)
is_proxy = models.BooleanField(default=False)
image = models.ImageField(default='user_images/default.jpg')
date_left = models.DateField(null=True, blank=True)
def __str__(self):
return self.get_full_name() or self.username
class Meta:
verbose_name = 'Kullanıcı'
verbose_name_plural = 'Kullanıcılar'
“塑料注射”应用程序中的操作员模型:
class Operator(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
team = models.ForeignKey(Team, on_delete=models.CASCADE)
area = models.IntegerField()
point = models.IntegerField(default=100)
is_active = models.BooleanField(default=True)
def __str__(self):
if self.user.is_active:
return f'{self.team.name} - {self.area} - {self.user.__str__()}'
return self.user.__str__()
class Meta:
verbose_name = 'Operatör'
verbose_name_plural = 'Operatörler'
注意:“塑料连接器”和“塑料装配”应用程序将具有几乎相同的操作员模型。据我所知,您需要一种方法将每个用户映射到塑料连接器/塑料注射等。我认为这将从前端处理?我个人会使用单个应用程序/模型来回答问题,并且在models.py中有一个类型区分字段,您可以在其中输入塑料连接器/塑料注射等。对于每个问题,当有人回答时,您只需让他们选择他们想要的问题类型,它向他们提供这类问题。或者,他们的类型是在创建帐户时设置的,然后在那里使用。你明白的。通过向用户表中添加一列来分离调用哪个端点,我指的是您的意见,即添加类型。但是我不知道这是否是正确的方法。对我来说,问题从前端开始。要处理将用户请求映射到正确应用程序的端点,我需要知道用户在哪里有外键之类的关系,在哪个应用程序的模型中是一对一还是多对多。这是保证将只有一个,因为我设计了它。就像你说的,我可以向用户模型中添加一个类型,然后将其用作端点引用,但不知道这是否正确。我认为你应该建立一个一对多关系,其中每个类型都映射到许多人。你们能发布你们的models.py文件吗?这样我就可以看到你们是如何设置它们的了。我在主要问题中添加了模型。每个人都将使用用户模型拥有一个帐户。其中一些将由操作员回答问题。他们中的一些人将成为经理,负责检查问题。对于n个不同区域的部门,我需要将他们的帐户映射到相关应用程序的端点,以便视图可以获取其运算符并列出要回答的问题。这就是为什么我在用户模型中添加了is_操作符,is_控制器。如果用户是directormanager,逻辑将不同。据我所知,您需要一种方法将每个用户映射到塑料连接器/塑料注射等。我认为这将从前端处理?我个人会使用单个应用程序/模型来回答问题,并且在models.py中有一个类型区分字段,您可以在其中输入塑料连接器/塑料注射等。对于每个问题,当有人回答时,您只需让他们选择他们想要的问题类型,它向他们提供这类问题。或者,他们的类型是在创建帐户时设置的,然后在那里使用。你明白的。通过向用户表中添加一列来分离调用哪个端点,我指的是您的意见,即添加类型。但是我不知道这是否是正确的方法。对我来说,问题从前端开始。要处理将用户请求映射到正确应用程序的端点,我需要知道用户在哪里有外键之类的关系,在哪个应用程序的模型中是一对一还是多对多。这是保证将只有一个,因为我设计了它。就像你说的,我可以向用户模型中添加一个类型,然后将其用作端点引用,但不知道这是否正确。我认为你应该建立一个一对多关系,其中每个类型都映射到许多人。你能发布你的models.py文件吗?这样我就可以看到你是如何设置它们的了。我把模型添加到了主q中 问题。每个人都将使用用户模型拥有一个帐户。其中一些将由操作员回答问题。他们中的一些人将成为经理,负责检查问题。对于n个不同区域的部门,我需要将他们的帐户映射到相关应用程序的端点,以便视图可以获取其运算符并列出要回答的问题。这就是为什么我在用户模型中添加了is_操作符,is_控制器。若用户是directormanager,则逻辑将不同。