I am using Django and Django Rest Framework 2.4.0
I get the Attribute error type object \'Notification\' has no attribute \'objects\'
mo
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()
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()
...
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