0

Моя одна модель класса, имеющий следующие модели,Импорт сериализатору в models.py: Джанго отдых framwork

NewsfeedModel.py

class NewsFeed(models.Model): 

class NewsStatus(models.Model): 

class NewsImage(models.Model): 

это мой файл serializers.py

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

class NewsFeedSerializer(serializers.ModelSerializer): 

До этого он отлично работает, я могу использовать модели в сериализаторе. Теперь я должен использовать serializer в своем файле NewsfeedModel, поэтому я импортирую сериализатор в файл NewsfeedModel, но это не позволяет мне использовать.

получает следующее сообщение об ошибке в журнале:

ImportError: cannot import name NewsFeed 

Есть ли способ использовать сериалайзер в классе модели?

+0

Вы не делаете. Зачем вам это нужно? – Linovia

+0

Мне нужно вернуть полностью добавленный новостной объект в push-ответе, когда администратор сохраняет новости на панели администратора. Теперь метод сохранения попадает в 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

Путь к работе вокруг кругового импорта заключается в том, чтобы удалить один из импортов с уровня модуля и выполнить его внутри метода, в котором он используется.

Вы не показали весь код модели, так что я не знаю, где вы его используете, но если это в save это будет выглядеть следующим образом:

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

Рабочая. Благодаря человеку :) –

0

Похоже, вы пытаетесь импортировать модель NewsFeed для себя.

Течение Джанго-покой рамки выглядит следующим образом:

модель> Serializer> Просмотр

После того, как ваши сериализаторов сделали все, что вам нужно сделать, это импортировать модели и сериализаторы в просмотры .py, в котором вы создадите классы/функции для обработки вызовов API. Пример такого использования будет:

views.py

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

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

Я рекомендовал бы, чтобы вы прочитали документацию DRF для лучшего понимания:
http://django-rest-framework.org

+0

Пробовал Не работает :( –

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