首页 > 解决方案 > AttributeError:模块“student.models”没有属性“ManyToManyField”

问题描述

我正在使用以下型号:

模型.py

class Student(models.Model):
    name    =   models.CharField(max_length = 200)
    country =   models.ManyToManyField(Country, null = True,blank=True)

class Country(models.Model):
    title   =   models.CharField(max_length = 100, null = True)
    
    def __str__(self):
        return self.title

管理员.py

@admin.register(models.Student)
class StudentAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.ManyToManyField: {'widget': CheckboxSelectMultiple},
    } 

我收到此错误:

AttributeError: module 'student.models' has no attribute 'ManyToManyField'

标签: djangodjango-modelsdjango-admin

解决方案


看起来您正在尝试使用models.ManyToManyFieldfrom student.models,而应该使用django.db.models.

尝试将此导入添加到文件顶部:

from django.db import models

如果名称与您的 冲突student.models,您可以将其重命名为:

from django.db import models as django_models

# then to use you would need to change your code to this:
django_models.ManyToManyField()

推荐阅读