2016-07-12 85 views
1

當我嘗試新的數據庫沒有使遷移,我得到這個錯誤:如何避免遷移時出現錯誤1146?

django.db.utils.ProgrammingError: (1146, "Table 'dorogi_test.activities_category' doesn't exist")

它是由該查詢提出:

models.Category.objects.filter(level=0, active=True).get_descendants(include_self=True) 

遷移前所exicutes,所以它不能不存在的表格。

我試着做到以下幾點:

def get_top_news_category(): 
    if models.Category.objects.exists(): 
     return models.Category.objects.filter(level=0, active=True).get_descendants(include_self=True) 


@permission_classes((permissions.AllowAny,)) 
class TopNewsViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): 
    serializer_class = ArticleSerializer 
    c = get_top_news_category() 
    queryset = models.Article.objects.filter(hot=True, category__in=c).order_by('-id')[:3] 

但我的代碼也崩潰這張支票上。我如何避免這個錯誤,讓Django開始移植而不用註釋代碼?

回答

1

哦。那很簡單。剛將所有功能都包含在功能中:

@permission_classes((permissions.AllowAny,)) 
class TopNewsViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): 
    serializer_class = ArticleSerializer 

    def get_queryset(self): 
     c = models.Category.objects.filter(level=0, active=True).get_descendants(include_self=True) 
     return models.Article.objects.filter(hot=True, category__in=c).order_by('-id')[:3] 
相關問題