我有一个django模型:
class ObservationMedia(models.Model):
observation = models.ForeignKey(Observation)
audio_file = AudioFileField ( upload_to=audio_dir, blank=True, null=True )
photo_file = models.ImageField( upload_to=img_dir, blank=True, null=True )
def __unicode__(self):
return "obsv-media "+str(self.pk)
观察的地方是:
class Observation(GUIDModel):
guid = models.CharField(unique=True, max_length=36, default=uuid.uuid4)
# many more fields here
是否可以ModelForm
ObservationMedia
Observation
传递给guid
的值不是其主键,而是guid
字段?我想到的解决方案是制作{{1}}主键。有可能避免这种情况吗?
答案 0 :(得分:0)
您可以执行以下操作,但目前尚未对此进行测试。
class ObservationMediaForm(ModelForm):
""" Observation Media Model Form """
class Meta:
model = models.ObservationMedia
fields = ('observation', 'audio_file', 'photo_file')
def __init__(self, *args, **kwargs):
super(ObservationMediaForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['observation'].initial = models.Observation.objects.get(pk=self.instance.observation).guid