Django 内では、外部キーの初期値を設定する方法が 2 つあります。私の2番目のアプローチは私にはうまくいかないようで、その理由がわかりません:
モデル:
class Task(models.Model):
contact = models.ForeignKey(Contact, null=True, blank=True)
作品:
意見:
form = TaskForm(contact, instance=task, prefix='form', initial = {'contact' : contact.pk})
形:
class TaskForm(ModelForm):
def __init__(self, contact, *args, **kwargs):
super(TaskForm, self).__init__(*args, **kwargs)
class Meta:
model = Task
動作しません:
意見:
form = TaskForm(contact, instance=task, prefix='form')
形:
class TaskForm(ModelForm):
def __init__(self, contact, *args, **kwargs):
super(TaskForm, self).__init__(*args, **kwargs)
if contact:
self.fields['contact'].initial = contact.pk
class Meta:
model = Task