Django 2.0.2模型创建的问题:AttributeError:' str'对象没有属性' _default_manager'

时间:2018-05-05 22:29:13

标签: python django python-3.x

使用Django 2.0.2

class Rischi(models.Model):
    RISCHIO = (
        ('Nullo', 'Nullo'),
        ('Irrilevante', 'Irrilevante'),
        ('Basso', 'Basso'),
        ('Medio', 'Medio'),
        ('Alto', 'Alto'),
        )
    azienda = models.ForeignKey(
        'azienda.Azienda',
        on_delete=models.CASCADE,
        )
    foto = models.ImageField(upload_to='rischi', blank=True)
    attivita = models.ForeignKey(
        Attivita,
        blank=True,
        null=True,
        on_delete=models.CASCADE,
        )
    luogo = models.ForeignKey(
        Luoghi,
        blank=True,
        null=True,
        on_delete=models.CASCADE,
        )
    macchina = models.ForeignKey(
        Macchine,
        blank=True,
        null=True,
        on_delete=models.CASCADE,
        )
    sostanza = models.ForeignKey(
        Sostanze,
        blank=True,
        null=True,
        on_delete=models.CASCADE,
        )
    fonte_rischio = models.ForeignKey(
        Fonte_rischio,
        on_delete=models.CASCADE
        )
    pericolo = models.CharField(max_length=200)
    mansione = models.ManyToManyField(
        'mansione.Mansione'
        )
    livello_rischio = models.CharField(max_length=200)
    rischio = models.CharField(max_length=200, choices=RISCHIO)
    allegato = models.ManyToManyField(
        Allegati,
        blank=True,
        )
    note = models.TextField(blank=True)
    data_di_creazione = models.DateField(auto_now_add=True)
    data_di_modifica = models.DateField(auto_now=True)

    def __str__(self):
        return  self.fonte_rischio.nome + ", id: "+ str(self.pk)

这是相关的表格

class RischiForm(ModelForm):
    class Meta:
        model = Rischi
        exclude = ['azienda']

当我执行runserver时,这是我收到的消息

  

属性错误:' str'对象没有属性' _default_manager'

但是当我设置不包括mansione

的表格时
class RischiForm(ModelForm):
    class Meta:
        model = Rischi
        exclude = ['azienda', 'mansione']

一切都很好

我试着阅读手册,我用Google搜索了这条消息,但我没有找到任何答案来解决这个问题......

1 个答案:

答案 0 :(得分:0)

听起来像mainsione.Mansione不是模型,而是str - 字符串对象。 Django试图在这个模型上查找默认管理器,它是一个_default_manager属性(由Django自动创建),但是一个字符串对象没有这样的属性。