2016-02-21 12 views
6

Używam Django Django Framework 2.4.0 Resztatyp obiektu 'X' nie ma atrybut 'obiekty'

pojawia się błąd atrybut 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 

Czy ktoś może mi pomóc, aby dowiedzieć się tego? To nie w api.py na linii notifications = Notification.objects.all()

Odpowiedz

16

Linia notifications = Notification.objects.all() odwołuje klasę Notification zdefiniowany w api.py i nie models.py.

Najprostszym sposobem usunięcia tego błędu jest zmiana nazwy klasy Notification w api.py lub models.py, aby można było poprawnie odwoływać się do modelu. Inną opcją byłoby użycie importu nazwanego:

from .models import Notification as NotificationModel 

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

wohoo! To pomogło mi rozwiązać mój problem. Dzięki! – Lyka

Powiązane problemy