django モデルで保存機能を処理する方法について、明確な考え方が必要です。以下に示すように、これをエレガントに行う方法に途方に暮れています。オブジェクト全体を別のモジュールに渡して、そこで分析したいと思います。models.py ではなく分割した分析を行う動機は、分析ビットを頻繁に改良することです。ありがとう。
models.py
from test_app.spam_analyzer import spam_checker
class SharedLink(models.Model):
link = models.URLField()
submitters_ip = models.IPAddressField()
flag = models.CharField()
def save(self, *args, **kwargs):
self.flag = spam_checker(self)
super(SharedLink, self).save(*args, **kwargs)
spam_analyzer.py
from test_app.models import SharedLink #this causes a "field not found" error
def spam_checker(SharedLink)
submitters_ip = SharedLink.submitters_ip
# see if this user's ip appears on a spam list
# if it does flag it 'spam'
return flag