信号の仕組みを理解するのが難しいですが、私はいくつかのページを調べましたが、どれも画像を取得できませんでした。保存リスト上で実装されたDjangoシグナル
私は2つのモデルを持っていますが、レコードが親に保存されるときに子モデルに保存される信号を作成したいと思います。実際には、この子は特に一般的な外部キーのため、子供が自分のアプリケーションを介してすべての親を聞いてくれるようにします。
コア/ models.py
from django.db import models
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
class Audit(models.Model):
## TODO: Document
# Polymorphic model using generic relation through DJANGO content type
operation = models.CharField(max_length=40)
operation_at = models.DateTimeField("Operation At", auto_now_add=True)
operation_by = models.ForeignKey(User, db_column="operation_by", related_name="%(app_label)s_%(class)s_y+")
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
ワークフロー/ models.py
from django.db import models
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from core.models import Audit
class Instances(models.Model):
## TODO: Document
## TODO: Replace id with XXXX-XXXX-XXXX-XXXX
# Re
INSTANCE_STATUS = (
('I', 'In Progress'),
('C', 'Cancelled' ),
('D', 'Deleted' ),
('P', 'Pending' ),
('O', 'Completed' )
)
id=models.CharField(max_length=200, primary_key=True)
status=models.CharField(max_length=1, choices=INSTANCE_STATUS, db_index=True)
audit_obj=generic.GenericRelation(Audit, editable=False, null=True, blank=True)
def save(self, *args, **kwargs):
# on new records generate a new uuid
if self.id is None or self.id.__len__() is 0:
import uuid
self.id=uuid.uuid4().__str__()
super(Instances, self).save(*args, **kwargs)
class Setup(models.Model):
## TODO: Document
# Polymorphic model using generic relation through DJANGO content type
content_type=models.ForeignKey(ContentType)
object_id=models.PositiveIntegerField()
content_object=generic.GenericForeignKey('content_type', 'object_id')
class Actions(models.Model):
ACTION_TYPE_CHOICES = (
('P', 'Python Script'),
('C', 'Class name'),
)
name=models.CharField(max_length=100)
action_type=models.CharField(max_length=1, choices=ACTION_TYPE_CHOICES)
class Tasks(models.Model):
name=models.CharField(max_length=100)
Instance=models.ForeignKey(Instances)
アム監査モデルのリスナーを作成するために苦労して新しいレコード場合ので、私は、インスタンスモデルとそれを接続することができますインスタンスに挿入すると、Auditにも自動的に挿入されます。次に、このリスナーを私のアプリのいくつかのモデルに接続する予定です
どうすればいいですか?
ここで重要なの何にこのデコレータを追加する必要が上記の呼び出しの ?子は親に対してFKを持つので、子の 'save()'は単に親の 'save()'を呼び出すことができます。あなたはこれのための信号を必要としません。 –