ContentTypes と Generic を使用する 3 つのモデルを持つ Django アプリを使用して、Task モデルがDjango で動的外部キーを使用する方法を使用して、他の 2 つのモデルのいずれかへの ForeignKey を持つことを許可しますか? ガイドとして(ただし、このアプローチで何が起こっているのかまったくわからないことは認めます)。
class Task(models.Model):
date = models.DateTimeField(null = True)
day = models.IntegerField(null = True)
task = models.CharField(max_length = 100, null = False)
owner = models.CharField(max_length = 25, null = True)
notes = models.CharField(max_length = 250, null = True)
isDone = models.BooleanField(default = False, null = False)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
maintenance = generic.GenericForeignKey('content_type', 'object_id')
class Maintenance(models.Model):
startMonth = models.CharField(max_length = 15, null = False)
startYear = models.IntegerField(null = False)
location = models.CharField(max_length = 20, null = False)
mode = models.CharField(max_length = 20, null = False)
taskRef = generic.GenericRelation(Task)
class Template(models.Model):
name = models.CharField(max_length = 25, null = False)
location = models.CharField(max_length = 20, null = False)
mode = models.CharField(max_length = 20, null = False)
taskRef = generic.GenericRelation(Task)
通常、Task が Maintenance への通常の ForeignKey を持っている場合、Maintenance.task_set.all() を使用して特定の Maintenance に接続されたすべての Task を取得できますが、この動的外部キー システムではその機能は機能しません。この効果を達成するための代替関数呼び出しを知っている人はいますか?