2017-06-08 6 views
0

エントリが存在するにもかかわらず、モデルのエントリにアクセスできません。訂正されても、他のビューのそのような行からアクセスされます。それは正しく動作しますが、それはDjango、Queryset、filet、属性エラーでこのエラーをどのように解決するには?

エラーが seriess = Series.objects.filter(serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug)

にだけ、私は同じページ内の別のビューを1つ持っている彼女自身

watched_serial = seriess.serial_of_this_series 
AttributeError: 'QuerySet' object has no attribute 'serial_of_this_series' 

ビュー

def mark_and_unmark_this_episode(request, serial_slug=None, season_slug=None, series_slug=None): 
    return_dict        = {} 
    data         = request.POST 
    is_delete        = data.get('is_delete') 
    seriess         = Series.objects.filter(serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 
    for i in seriess: 
     print(i) 
    watched_serial       = seriess.serial_of_this_series 
    watched_serie       = seriess 
    minutes_of_series      = seriess 
    user         = request.user 


    if is_delete == 'true': 
     mark_it        = watched_series.objects.get(user=request.user, watched_serial__slug=serial_slug, watched_serie__slug=series_slug, minutes_of_series__slug=series_slug) 
     #m = watched_series.objects.get(user=user, watched_serial=instance.watched_serial) 
     mark_it.delete() 
     update_profile, created    = UserProfile.objects.filter(user=request.user) 
     if not created: 
      update_profile.user    = user 
      update_profile.series_watched_nmb -= 1 
      update_profile.save(force_update=True) 



    if is_delete == 'false': 
     mark_it_watched, created   = watched_series.objects.get_or_create(user=request.user, watched_serial__slug=serial_slug, watched_serie__slug=series_slug, defaults={"user":user, "watched_serial":watched_serial, "watched_serie":watched_serie, "minutes_of_series":minutes_of_series}) 
     if not created: 
      mark_it_watched.user   = user 
      mark_it_watched.watched_serial = watched_serial 
      mark_it_watched.watched_serie = watched_serie 
      mark_it_watched.minutes_of_series = minutes_of_series 
      mark_it_watched.save(force_update=True) 




    return_dict["watched_info"]     = list() 




    product_dict       = {} 
    product_dict["user"]     = request.user 
    product_dict["watched_serial"]   = seriess.serial_of_this_series 
    product_dict["watched_serie"]   = seriess 
    product_dict["minutes_of_series"]  = seriess 
    return_dict["watched_info"].append(product_dict) 

    print(return_dict) 
    return JsonResponse(return_dict) 

をエラーこのviews.pyでありますアップグレードボタンのためにどんなことがあったのですか これはこのページのコンテンツであり、これは

01です
serie = get_object_or_404(Series, serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 

は、この関数から mark_and_unmark_this_episodeをコード行を取る場合、これは

seriess = Series.objects.filter(serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 

や機能に貼り付け、コードのこの行をpost_of_serie

を動作しませんでしたされた機能で、仕事です、whis raiseとerrorはすべて動作します!なぜこれが起こるのですか?

seriess = Series.objects.filter(serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 

別のビュー

def post_of_serie(request, serial_slug=None, season_slug=None, series_slug=None): 
    serie       = get_object_or_404(Series, serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 
    title       = serie.serial_of_this_series.rus_name_of_seriall 
    full_path      = All_Images_Of_The_Series.objects.filter(to_series__serial_of_this_series__slug=serial_slug, to_series__season_of_this_series__slug=season_slug, to_series__slug=series_slug, is_poster=True) 

    context = {"serie":serie, "full_path":full_path, "title":title,} 
    try: 
     userr       = request.user   
     check_button     = watched_series.objects.filter(user=request.user, watched_serial__slug=serial_slug, watched_serie__season_of_this_series__slug=season_slug, watched_serie__slug=series_slug) 
     context["check_button"]   = check_button 
     context["userr"]    = userr 
    except: 
     pass 
    return render(request, 'series.html', context) 

答えて

1

あなたは、コードのすべてを削除し、これらの2行を残す場合は、

seriess = Series.objects.filter(serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug) 
print(seriess) 

それは出力URLに誤りは、つまり、あなたが受け入れますあなたの関数では、serial_slug、season_slug、series_slugのようなパラメータがありますが、おそらくAjax経由でリクエストを送信し、これらのパラメータは単純には行いません。ボタンの更新でこの関数を実行した場合は、main関数wここでコンテンツを出力すると、その場合はすべてがあなたのために機能します!幸運にも、もちろんDjangoの知識ではまだ小さいですが、あなたは静かに行っています。

+0

はい、あなたが正しいです、すべてを削除しました。私はこのエラーを受け取りました、それは忘れられた{%static%}と書かれていました。大変ありがとう、たくさんの天才が入ってきましたが、あなたは質問を読んだ人だけです、そして、説明、ありがとうございました! –

関連する問題