Я наткнулся на эту тему, когда искал, как установить начальное «выбранное» состояние формы Django для поля внешнего ключа, поэтому я просто хотел добавить, что вы делаете это следующим образом:
models.py:
class Thread(NamedModel):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
title = models.CharField(max_length=70, blank=False)
forms.py:
class ThreadForm(forms.ModelForm):
class Meta:
model = Thread
fields = ['topic', 'title']
views.py:
def createThread(request, topic_title):
topic = Topic.getTopic(topic_title)
threadForm = ThreadForm(initial={'topic': topic.id})
...
Ключом является настройка initial={'topic': topic.id}
, которая, на мой взгляд, недостаточно хорошо документирована.