FieldDoesNotExist:ManyToManyField 没有名为 None 的字段

问题描述 投票:0回答:5

我在 Django 1.8.8 中有两个模型:

class Company(models.Model):
    name = models.CharField(max_length=200)
    members = models.ManyToManyField(User)
class Folder(models.Model):
    name = models.CharField(max_length=200)
    slug = models.SlugField(null=True, blank=True)
    company = models.ForeignKey(Company, null=True, blank=True)
    parent = models.ForeignKey("Folder", null=True, blank=True)

当我在模板中做时

{% for user in current_folder.company.members.all %}

我有时(在重新加载几页后随机地)遇到非常奇怪的错误:

FieldDoesNotExist: Company_members has no field named None

我也使用sqlite3数据库。有人知道问题出在哪里吗?

python django manytomanyfield
5个回答
1
投票

这很可能是您应该检查的相关 django 票证 https://code.djangoproject.com/ticket/24513

这个问题可能有一定的相关性,尽管不是 100% https://github.com/jet-admin/jet-django/issues/7

阅读这些主题,您可能会获得一些见解。


0
投票

如果您想从实例访问外键字段,您不能像这里那样直接访问它

{% for user in current_folder.company.members.all %}

ForeignKey 字段是一家公司,所以应该是

current_folder.company_set()

注意:ForeignKey 返回一组对象。就您而言,是一组公司。这就是它返回的原因

FieldDoesNotExist


0
投票

Django 5 和 IPython 8.23.0 中的 ManyToManyFields 出现此错误。 我认为这与自动重新加载有关,因为重新启动 IPython shell 后错误消失了。


-1
投票

尝试添加空字段和空白字段

members = models.ManyToManyField(user, blank=True, null=True)

-2
投票

数据库中可能存在重复的项目。

您可以使用以下方式列出模型中的所有项目来进行检查:

YourModel.objects.values_list('id', 'name')

为了避免这种情况,请确保设置 unique=True。

name = models.CharField(max_length=200, unique=True)
© www.soinside.com 2019 - 2024. All rights reserved.