首页 > 解决方案 > REST为Django中的不同用户添加属性

问题描述

我构建了我的第一个应用程序,它允许我在名为“项目”的表中创建新条目现在我有标准用户模型,我想创建一个新表,我可以在其中将用户(ID 或名称)分配给一个或更多项目对象。

理想情况下,这应该是一个全新的表,其中只包含用户的 ID/名称和项目的 ID/名称的条目对。但我真的不知道如何从用户列表中提取一个对象,从项目列表中提取一个对象以将它们放在一个新表中。

用户应该能够添加一个新的“项目”并自动分配给它。

标签: djangoapirest

解决方案


我建议做的是像这样构建你的模型:

class Project(models.Model):
    ... other fields
    users = models.ManyToManyField(User, null=True, blank=True)

正如您在此处看到的,我正在使用 ManyToMany 关系,它创建了另一个存储 project_id-user_id 对的表。

如果您想返回项目对象的所有用户对象,您应该执行以下操作:

project = Projects.objects.get(...)
project_users = project.users.all()

如果您想为 User 对象返回相关项目,您应该执行以下操作:

user = User.objects.get(...)
user_projects = user.project_set.all()

如需更多参考,请参阅https://docs.djangoproject.com/en/3.2/topics/db/examples/many_to_many/


推荐阅读