【问题标题】:Cant seem to retrieve info on django many to many, 'object has no attribute'似乎无法在 django 上多对多检索信息,“对象没有属性”
【发布时间】:2017-09-08 08:45:28
【问题描述】:

在我的应用中,我有一个自定义的“Group_Set”模型,旨在将用户分组在一起。不过,我似乎无法检索组中的用户。

from django.db import models
from django.contrib.auth.models import User



class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True)
    display_name = models.CharField(max_length=30, blank=True)
    slug = models.CharField(max_length=30, blank=True)
    bio = models.TextField(max_length=500, blank=True)
    avatar = models.ImageField(upload_to = 'avatars/', default = 'avatars/default.jpg')
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)
    public = models.BooleanField(default = False)

    def __str__(self):
        return self.slug

class Group_Sets(models.Model):
    name = models.CharField(max_length=30)
    slug = models.CharField(max_length=30, blank=True)
    bio = models.TextField(max_length=500, blank=True)
    users = models.ManyToManyField(User, related_name='users')
    public = models.BooleanField(default = False)

    def __str__(self):
        return self.slug

一旦我们得到一个 Group_Set 对象,group = get_object_or_404(),所有其他属性都会起作用。但是,即使我可以在数据库和管理员中看到关系函数,group.users 也会返回“auth.User.none”。

谁能看出我的设置有什么问题?

【问题讨论】:

  • 不清楚你在运行什么代码,得到什么结果。你试过group.users.all()吗?有关更多信息,请参阅 many to many relationships 上的文档。

标签: python django many-to-many django-orm


【解决方案1】:

这对我来说是一个愚蠢的错误,你需要使用'group.users.all()',所以就是这样。记住你的 related_name 和 all 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 2018-08-10
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多