type object 'X' has no attribute 'objects'

前端 未结 3 2028
情书的邮戳
情书的邮戳 2020-12-18 18:11

I am using Django and Django Rest Framework 2.4.0

I get the Attribute error type object \'Notification\' has no attribute \'objects\'

mo

相关标签:
3条回答
  • 2020-12-18 18:25

    Add objects = models.Manager() to your model, or any other custom manager that you are using and/or define.

    class Notification(models.Model):
        NOTIFICATION_ID = models.AutoField(primary_key=True)
        user = models.ForeignKey(User, related_name='user_notification')
        type = models.ForeignKey(NotificationType)
        join_code = models.CharField(max_length=10, blank=True)
        requested_userid = models.CharField(max_length=25, blank=True)
        datetime_of_notification = models.DateTimeField()
        is_active = models.BooleanField(default=True)
    
        objects = models.Manager()
    
    0 讨论(0)
  • 2020-12-18 18:31

    The line notifications = Notification.objects.all() is referencing the Notification class defined in api.py and not models.py.

    The easiest way to fix this error is to rename the Notification class in either api.py or models.py so that you can refer to your model properly. Another option would be to use named imports:

    from .models import Notification as NotificationModel
    
    class Notification(generics.ListAPIView):
        ...
        def get_queryset(self):
            notifications = NotificationModel.objects.all()
            ...
    
    0 讨论(0)
  • 2020-12-18 18:47

    Not the answer to this question but if you have come via Google you may have accidentally marked your model as abstract and are trying to query it directly, in which case you need to remove:

        class Meta:
            abstract = True
    
    0 讨论(0)
提交回复
热议问题