Django 2.0.2 Проблемы с созданием модели: AttributeError: у объекта 'str' нет атрибута '_default_manager' - PullRequest
0 голосов
/ 06 мая 2018

Использование 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, это сообщение я получаю

AttributeError: у объекта 'str' нет атрибута '_default_manager'

но когда я устанавливаю форму, исключая особняк

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

все в порядке

Я пытался прочитать руководство, и я погуглил это сообщение, но я не нашел ответа на эту проблему ...

1 Ответ

0 голосов
/ 06 мая 2018

Звучит как mainsione. Mansione - не модель, а str - строковый объект. Django пытается найти менеджер по умолчанию в этой модели, который будет атрибутом _default_manager (он создается Django автоматически), но строковый объект не будет иметь такого атрибута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...