AttributeError: объект 'Doctor' не имеет атрибута 'comments'

Я работаю над этим проектом, но у меня возникла следующая ошибка comm = doctor_detail.comments.filter(active=True) AttributeError: у объекта 'Doctor' нет атрибута 'comments', однако я думаю, что все в порядке

вот мой models.py

class Comments(models.Model):
    co_name = models.CharField(max_length=50, verbose_name="الاسم ")
    co_email = models.EmailField(
        max_length=50, verbose_name="البريد الالكتروني")
    co_body = models.TextField(max_length=400, verbose_name='التعليق')
    created_dt = models.DateTimeField(auto_now_add=True)
    active = models.BooleanField(default=True)
    post = models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='comments')

    def __str__(self):
        return 'علق {} على {}'.format(self.co_name, self.post)

вот мой views.py

def doctor_detail(request, slug):
    # استدعاء جميع البينات اللي في البروفايل
    doctor_detail = get_object_or_404(Doctor, slug=slug)
    comm = doctor_detail.comments.filter(active=True)
    form = Commentair()
    if request.method == 'POST':
        form = Commentair(data=request.POST)
        if form.is_valid():
            new_comment = form.save(commit=False)
            new_comment.post = doctor_detail
            new_comment.save()
            form = Commentair()
    else:
        form = Commentair()
    return render(request, 'user/doctor_detail.html', {'doctor_detail': doctor_detail,
                                                       'comm': comm,'form': form
                                                       })

Я действительно не знаю, почему я столкнулся с этой ошибкой, потому что связанное имя доступно и я думаю, что все в порядке .Пожалуйста, если есть ответ на это напишите его и объясните мне. спасибо

Исходя из предоставленного вами кода, похоже, что атрибут comments, к которому вы пытаетесь получить доступ, определен в модели User, а не в модели Doctor. Вы пытаетесь получить доступ к нему через объект Doctor, поэтому и возникает ошибка.

Чтобы исправить это, вам нужно получить доступ к атрибуту comments через объект User. Если вы хотите получить объект User, который связан с объектом Doctor, вы можете использовать атрибут user объекта Doctor. Например, вы можете заменить эту строку:

comm = doctor_detail.comments.filter(active=True)

с этой строкой:

comm = doctor_detail.user.comments.filter(active=True)
### You done mistake in here comments -> Comments c will be capital in filter

def doctor_detail(request, slug):
    # استدعاء جميع البينات اللي في البروفايل
    doctor_detail = get_object_or_404(Doctor, slug=slug)
    comm = doctor_detail.Comments.filter(active=True)
    form = Commentair()
    if request.method == 'POST':
        form = Commentair(data=request.POST)
        if form.is_valid():
            new_comment = form.save(commit=False)
            new_comment.post = doctor_detail
            new_comment.save()
            form = Commentair()
    else:
        form = Commentair()
    return render(request, 'user/doctor_detail.html', {'doctor_detail': doctor_detail,
                                                       'comm': comm,'form': form
                                                       })
Вернуться на верх