2016-02-21 6 views
6

Я использую Django и Django Rest Framework 2.4.0тип объекта 'X' имеет нет атрибута 'объекты'

Я получаю ошибку атрибута type object 'Notification' has no attribute 'objects'

models.py

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) 

serializers.py:

class NotificationSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Notification 
     fields = (
      'type', 
      'join_code', 
      'requested_userid', 
      'datetime_of_notification' 
     ) 

api.py:

class Notification(generics.ListAPIView): 
    serializer_class = NotificationSerializer 
    def get_queryset(self): 
     notifications = Notification.objects.all() 
     return notifications 

Может кто-нибудь помочь мне, чтобы понять это? Он терпит неудачу в api.py на линии notifications = Notification.objects.all()

ответ

16

Линия notifications = Notification.objects.all() ссылается на Notification класс, определенный в api.py и не models.py.

Самый простой способ исправить эту ошибку - переименовать класс Notification на api.py или models.py, чтобы вы могли правильно обращаться к своей модели. Другим вариантом было бы использовать именованный импорт:

from .models import Notification as NotificationModel 

class Notification(generics.ListAPIView): 
    ... 
    def get_queryset(self): 
     notifications = NotificationModel.objects.all() 
     ... 
+0

wohoo! Это помогло мне решить мою проблему. Благодаря! – Lyka

Смежные вопросы