2
postgres에서 mysql으로 마이 그 레이션을 시도하고 있습니다. 아래는 Customdata 모델입니다.django GenericForeignkey는 object.create()에서는 작동하지 않지만 save()에서는 제대로 작동합니다.
user = models.ForeignKey(User, related_name='customdatas')
call_uuid = models.CharField(max_length=50, null=True, blank=True, editable=False)
phone_number = models.CharField(max_length=15)
name = models.CharField(max_length=50, db_index=True)
type = models.CharField(max_length=10, choices=TYPE_CHOICES,
default='xml')
appcode = models.CharField(max_length=10, choices=APPCODE_CHOICES,
null=True, blank=True)
value = JSONField(default=[])
remark = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
expiry_time = models.DateTimeField(null=True, blank=True, db_index=True)
reference_type = models.ForeignKey(ContentType, null=True, blank=True)
reference_id = UUIDField('Reference ID', null=True, blank=True)
reference = generic.GenericForeignKey('reference_type', 'reference_id')
나는 아래 사용하여 항목을 작성하고 I 필드 "참조"GenericForeignKey 문제에 직면 니펫을 업데이트되지 않습니다. 나머지 모든 값은 완벽합니다.
>> c = Customdata.objects.create(call_uuid=session_uuid + '__'+ str(i),
user=order.user, name="voicemail", phone_number=phone_number,
type='url', value=data, remark=events['recordingFile'][i],
reference=order)
>> c.reference
[Blank value returned]
그러나 업데이트를 수행하면 값이 저장됩니다.
>> c.reference = order
>> c.save()
>> c.reference
kdfj-kddl-3933kd-3ed8dl
"참조"필드가 작성을 사용하여 저장되지 않고 다시 업데이트 된 이유는 알 수 없습니다. 이 코드는 포스트그레스와 잘 작동합니다.