从Django模型中的ManyTomany关系中获取现场值



我正在尝试获取与另一个模型关联的字段值。型号CategoryProfile模型有manytomany的关系。

Category

id   category_name module_name
1    A             X
2    B             Y

profile_category

id    profile_id    category_id
1     2             1

例如。我想显示模块名称X如果类别ID 1分配给用户ID 2

models.py

class Category(models.Model):
    category_name = models.CharField(max_length=150, blank=False, null=True, default="", unique=True)
    module_name = models.TextField(blank=False, null=True)
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name ='profile')
    phone_number = PhoneNumberField( blank=True, null=True)
    organisation = models.CharField(max_length=30, blank=True)
    category = models.ManyToManyField(Category)
    # Get the list of module names 

我尝试使用module_name = Coupling.objects.values('module_name'),但这是返回所有Module_names而不是与用户ID 2

关联的名称

任何帮助/建议将受到高度赞赏。预先感谢。

尝试以下:

user = User.objects.get(id=2)
print(user.profile.category.values('module_name'))

更新:

print(Profile.objects.filter(user=2).values('category__module_name'))

最新更新