根据相关项目的存在在MultipleChoiceField上设置初始值

时间:2019-01-06 16:11:56

标签: django django-forms

我有2个模型。它们彼此相关。

models.py

export interface Deserializable {
    deserialize(input: any): this;
}

在一个表单中,我有一个MultipleChoiceField,可以将Car的所有实例显示为选择。

forms.py

class Car(models.Model):  
    model = models.CharField()
    manufacturer = models.CharField()

class MyCar(models.Model):  
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    car = models.ForeignKey(Car, on_delete=models.CASCADE) 

当用户提交表单时,对于所选的每个Car实例,都会创建一个MyCar的相关实例。当用户导航回到表单时,我想基于用户已经存在的MyCar实例在“汽车”字段上设置初始值。

cars = forms.MultipleChoiceField(required=False, widget=forms.CheckboxSelectMultiple)

def __init__(self, *args, **kwargs):      
    super(CarForm, self).__init__(*args, **kwargs)    
    self.fields['cars'].choices = [(t.id, t) for t in Cars.objects.all()]

非常感谢您的帮助!

0 个答案:

没有答案