2つのDjangoモデル(イベントとGMSEvents)があります。
GMSEventsの外部キーとしてEventsモデルのeventAcronymを使用したいと思います。以下のように試しましたが、エラーが発生します
AssertionError: ForeignKey(<django.db.models.query_utils.DeferredAttribute object at 0x000002032DA1E8C8>) is invalid. First parameter to ForeignKey must be either a model,
a model name, or the string 'self'
class Events(models.Model):
eventAcronym = models.CharField(max_length=4, blank=False, null=False)
eventName = models.CharField(max_length=30, blank=False, null=False)
def __str__(self):
return f"{self.eventAcronym} - {self.eventName}"
class GMSEvents(models.Model):
gateNo = models.IntegerField(blank=False, null=False)
aircraftName = models.CharField(max_length=15, blank=False, null=False)
detectEvent = models.ForeignKey(Events.eventAcronym, on_delete=models.CASCADE)
timeStamp = models.DateTimeField()
eventAcronym
を一意としてマークする必要があります。そうしないと、それ自体が一意の要素を参照しません。
class Events(models.Model):
eventAcronym = models.CharField(max_length=4, unique=True)
# …
次に、to_field=…
パラメーター[Django-doc]を使用して、ターゲット列を指定できます。
class GMSEvents(models.Model):
gateNo = models.IntegerField()
aircraftName = models.CharField(max_length=15)
detectEvent = models.ForeignKey(
Events,
to_field='eventAcronym',
on_delete=models.CASCADE
)
timeStamp = models.DateTimeField()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加