guanghao479 / mymd

2 stars 0 forks source link

profile edit页面的完善 #91

Closed Xinghan closed 11 years ago

Xinghan commented 11 years ago

Now profile edit only show community name dropdown list because profile model only has community field. The reason for this design is city and district are both foreign key for community. The fix is to solve how modelform can add fields not in model(profile). In addition, birthday need datepicker.

Xinghan commented 11 years ago

做法有些奇怪,我还是在后台form初始化的时候做一下吧

Xinghan commented 11 years ago

@fmaj7 这个咱俩讨论一下吧。 问题:在edit form load的时候,如果某个field,比如community是下拉选单的话,他是要把所有community都load进来的,包括所有区的community,所以我的做法是先让community整个load进来,然后反向用ajax去找这个community的district和city,然后再顺向重写district和community的值,这样的问题是,用户会在一瞬间看到district和community的内容变化。

我们要讨论一下是不是在form load之前,我们就可以处理一下这个情况。用modelform如果处理,如果不好解决,直接用form如何处理。

guanghao479 commented 11 years ago

这个情况不应该用ModelChoiceField, 就用ChoiceField然后在form init data的时候把筛选过的值给它

guanghao479 commented 11 years ago

我没有实现,不过我觉得逻辑应该是这样的,具体细节可能不对 def init(self, _args, *_kwargs): if (self.instance): self.fields['district'].queryset = District.onjects.filter(city=self.instance.city) 我确认过self.instance是存在的,需要确认self.instance.city是不是一个object。我之前再问为什么要传进去id就是想说一个form,特别是一个model form,应该是知道要edit的那个model的instance是什么的。

然后我没搞清楚的是form的choid field会不会选中用户之前选的那个值,我assume它会选中的话,它是怎么选中的?

Xinghan commented 11 years ago

@fmaj7 会选中,不知道为什么选中,我再调查,不过这个我可以测试一下,觉得你说的这个是对的