2017-10-16 34 views
0

通知アプリを作成しようとしています。私は、ユーザーに通知されるべきアクションに関する情報を収集する中間部と、UserNotificationモデルで自動的にインスタンスを作成するアクションを処理するビューで、これはすべて動作しています。ここで、ユーザーの投稿が別のユーザーによって好きになった場合、その操作を通知ページに表示する必要があります。しかし、私は明らかに、サイト上で作成されているすべての通知を見るのではなく、自分の投稿によって作成された通知だけを見ることを望んでいます。AttributeError at/notify/notify/'UserNotifications'オブジェクトに 'user'属性がありません

私は現在のユーザーに基づいて、ビューに問題があり、通知をフィルタリングしています。具体的には、私はこのエラーを取得しています:トレースバック付き

AttributeError at /notify/notify/ 
'UserNotifications' object has no attribute 'user' 

:ここ

Traceback (most recent call last): 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner 
    response = get_response(request) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view 
    return self.dispatch(request, *args, **kwargs) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 56, in dispatch 
    return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch 
    return handler(request, *args, **kwargs) 
    File "/anaconda3/envs/dev/lib/python3.6/site-packages/django/views/generic/list.py", line 160, in get 
    self.object_list = self.get_queryset() 
    File "/Users/garrettlove/Desktop/evverest/notify/views.py", line 30, in get_queryset 
    return UserNotification.objects.filter(user=request.user) 

は、これに関連する私の見解である:

:ここ

// Bunch of imports are all here 

User = get_user_model() 

class UserNotifications(LoginRequiredMixin,ListView): 
    login_url = 'account_login' 
    model = UserNotification 
    template_name = 'notify/usernotification_list.html' 
    context_object_name = 'notifies' 
    paginate_by = 25 

    def get_queryset(request): 
     return UserNotification.objects.filter(user=request.user) 

は私UserNotificationモデルです

from django.db import models 
from django.contrib.auth import get_user_model 
from django.db.models.signals import post_save 
from django.dispatch import receiver 

User = get_user_model() 

# Create your models here. 
class UserNotification(models.Model): 
    user = models.ForeignKey(User,related_name='user',null=True) 
    post = models.ForeignKey('feed.UserPost',related_name='post') 
    timestamp = models.DateTimeField(auto_now_add=True) 
    notify_type = models.CharField(max_length=6) 
    read = models.BooleanField(default=False) 

    def __str__(self): 
     return str(self.user) 

答えて

1
def get_queryset(self): 
    return UserNotification.objects.filter(user=self.request.user) 
関連する問題