Joe
Joe

Reputation: 4633

Django ModelChoiceField initial data not working for ForeignKey

I am filling my form with initial data using the normail:

form = somethingForm(initial = {
                    'title' : something.title,                    
                    'category' : something.category_id,
                })

The title works fine, but if the category is a ModelChoiceField and a ForeignKey in the model, the initial data won't work. Nothing will be selected in the Select Box. If I change category to an IntegerField in the model it works fine.

I still want to use a ForeignKey for category though, so how do I fix this?

Upvotes: 2

Views: 1349

Answers (2)

Michael Williamson
Michael Williamson

Reputation: 11438

Perhaps try using an instance of a category rather than its ID?

Upvotes: 1

Rama Vadakattu
Rama Vadakattu

Reputation: 1266

You need to do this

form = somethingForm(initial = {
                    'title' : something.title,                    
                    'category' : [("database value","display value")],
                })

Why list of tuples?

  1. Because choice fields are associated with select widget ( i.e html ===> ..............)

  2. For each option we need to specify two things 1.internal value 2.display value (each tuple in the list specifies this)

Upvotes: 0

Related Questions