AttributeError: у объекта «***» нет атрибута «*** _ set» - PullRequest
1 голос
/ 22 декабря 2019

Был бы так рад, если бы кто-нибудь мог мне помочь.

Что я хочу сделать: изменить все «голоса» на ноль после удаления автора.

class Author(models.Model):
    """Model representing an author."""

    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    date_of_birth = models.DateField(null=True, blank=True)
    date_of_death = models.DateField('died', null=True, blank=True)

    class Meta:
        ordering = ['last_name', 'first_name']

    def get_absolute_url(self):
        """Returns the url to access a particular author instance."""
        return reverse('catalog:author-detail', args=[str(self.id)])

    def __str__(self):
        """String for representing the Model object."""
        return '{0}, {1}'.format(self.last_name, self.first_name)


class Option(models.Model):
    def default_votes():
        d=Author.objects.all().first()
        print(dir(d))
        for a in d.option_set.all():
            a.votes=0
    author = models.ForeignKey(Author, on_delete=models.SET_DEFAULT, default=default_votes())
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

Но яget:

  File "C:\Users\chainsaw\Desktop\django-locallibrary-tutorial-master\django-loc
allibrary-tutorial-master\catalog\models.py", line 128, in default_votes
    for a in d.option_set.all():
AttributeError: 'Author' object has no attribute 'option_set'

Но в оболочке есть этот атрибут. И я могу это изменить. Что я делаю не так?

...