샐러리를 사용하여 장거리 작업을 수행하는 장고 앱이 있습니다. 주로 데이터베이스 테이블의 일부 필드 계산을 연기합니다.셀러리와 장고에서 순환 수입 해결하기
그래서, 나는 tasks.py 있습니다
from django.db import models
from tasks import my_task
class MyModel(models.Model):
field1 = models.IntegerField()
#more fields
my_field = models.FloatField(null=True)
@staticmethod
def load_from_file(file):
#parse file, set fields from file
my_task.delay(id)
지금 분명,이 때문에 원형 수입 작동하지 않습니다
from models import MyModel
from celery import shared_task
@shared_task
def my_task(id):
qs = MyModel.objects.filter(some_field=id)
for record in qs:
my_value = #do some computations
record.my_field = my_value
record.save()
그리고 models.py에서을 (models
수입 tasks
및 tasks
수입품 models
).
을 views.py
에서 불러 와서이 문제를 해결했지만 모델 논리를 모델 클래스 내에 유지하는 것이 좋습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
사용자 지정 ModelManager를 만들고 별도의 파일에 넣습니다. –