0

私の1つのモデルクラス、インポート・シリアライザ:次のモデルを持つDjangoの残りframwork

NewsfeedModel.py

class NewsFeed(models.Model): 

class NewsStatus(models.Model): 

class NewsImage(models.Model): 

これは

from MadhaparGamApps.AppModels.NewsfeedModel import NewsFeed, NewsStatus, NewsImage 

class NewsFeedSerializer(serializers.ModelSerializer): 
私serializers.pyファイルです

これまで、シリアライザでモデルを使用できるようになりました。今度は、私のNewsfeedModelファイルでシリアライザを使用しなければならないので、シノニタをNewsfeedModelファイルにインポートしますが、私はそれを使用できません。

ログに次のエラーを取得:

ImportError: cannot import name NewsFeed 

は、モデルクラスにシリアライザを使用する方法はありますか?

+0

あなたはしないでください。なぜあなたはそれを必要としますか? – Linovia

+0

管理者が管理パネルにニュースを保存すると、新しく追加されたニュースフィードオブジェクトをプッシュレスポンスで返す必要があります。今度はsaveメソッドがmodels.py signals.post_save.connect(news_feed_post_save、sender = NewsFeed) で捕捉されています。なぜ私はこれが必要なのでしょうか? http://stackoverflow.com/questions/39932802/retrieve-inserted-object-after-save-django-rest-framework は –

答えて

1

円形輸入を回避する方法:

views.py

from newsfeedmodel.py import * 
from serializers.pi import * 

class NewsFeedViewSet(viewsets.ModelViewSet): 
    queryset = NewsFeed.objects.all() 
    serializer_class = NewsFeedSerializer 

は、私はあなたがよりよく理解するためにDRFのドキュメントを読むことをreccomendうインポートの1つをモジュールレベルから削除し、それが使用されているメソッドの中で実行することです。

あなたは、あなたがそれを使用する場所を私は知っていないすべてのモデルのコードを示していないが、それはsaveでいた場合、それは次のようになります。

def save(self, **kwargs): 
    import serializers 
    # rest of method 
+0

作業を働いていないしようとしましたありがとうございました。おかげで男を:) –

0

自分自身にNewsFeedモデルをインポートしようとしているようです。

ジャンゴ・休息・フレームワークの流れは次のようになります。あなたのシリアライザが行わ取得した後

モデル>シリアライザ>表示

すべてを行う必要があるビューにモデルやシリアライザをインポートすることですAPIへの呼び出しを処理するクラス/関数を作成する.pyファイルです。このような使用のための例は次のようになります。
http://django-rest-framework.org

+0

が:( –

関連する問題