每當(dāng)我創(chuàng)建以后可以重用的DRY函數(shù),然后在模型中使用它們時(shí),我都會得到循環(huán)引用。例如:我有以下型號:from social.services import get_top_viewed_postsclass Post(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE) title = models.CharField('Post Title', max_length=255) class ActivityUpdateEmail(models.Model): sent = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now = True) def send(self): posts = get_top_viewed_posts()我查看次數(shù)最多的帖子功能是另一個(gè)名為services.py的文件,因此我可以在其他地方訪問它。看起來像:from social.models import Postdef get_top_viewed_posts(): posts = Post.objects.filter( pk__in=popular_posts_ids, ).order_by( '-created_at' ) return posts然后我得到錯誤:services.py", line 1, in <module> from social.models import PostImportError: cannot import name 'Post'如果我將其更改為:交易= Action.objects.filter(content_type__pk = 35,created_at__gte = start_date,).values_list('object_id',flat = True)popular_posts_ids = []popular_posts = Counter(transactions).most_common()[:result_amount]for dic in popular_posts: popular_posts_ids.append(dic[0])class ActivityUpdateEmail(models.Model): sent = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now = True) def send(self): posts = Post.objects.filter( pk__in=popular_posts_ids, ).order_by( '-created_at' )這沒問題。如何使用這種干燥的抽象功能方法,然后在模型中使用它們?
添加回答
舉報(bào)
0/150
提交
取消