我的一个模型类有以下模型,
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):
到目前为止,它工作正常我可以在序列化器中使用模型。现在我必须在我的NewsfeedModel文件中使用序列化程序,所以我在NewsfeedModel文件中导入序列化程序,但它不允许我使用。
在日志中收到以下错误:
ImportError: cannot import name NewsFeed
有没有办法在模型类中使用序列化器?
答案 0 :(得分:2)
解决循环导入的方法是从模块级别删除其中一个导入,并在使用它的方法中执行。
您还没有显示所有型号代码,所以我不知道您在哪里使用它,但如果它在save
中,它将如下所示:
def save(self, **kwargs):
import serializers
# rest of method
答案 1 :(得分:0)
您似乎正在尝试将NewsFeed模型导入自身。
django-rest-framework的流程如下所示:
模型>串行器>图
完成序列化程序之后,您需要做的就是将模型和序列化程序导入到views.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