2
請幫忙,表單首先加載在表單域中顯示來自數據庫的數據。如何填寫表格初始資料?
型號:
class Status(models.Model):
status = models.CharField(max_length=40, blank=False,)
@classmethod
def get_status_list(self):
status_list = list()
status_list.append(('', 'no selected'))
for values_ins in Status.objects.all().values_list('id', 'status'):
status_list.append(values_ins)
return status_list
class UserProfile(User):
name1 = models.CharField('Имя', max_length=30, blank=True, null=True, )
name2 = models.CharField('Отчество', max_length=30, blank=True, null=True, )
status = models.ForeignKey(Status, verbose_name='Статус', blank=True, null=True, )
形式:
class PersonalDataForm(forms.ModelForm):
status = forms.ChoiceField(widget=forms.Select, choices=Status.get_status_list(),label='Статус',required=False,)
class Meta:
model = UserProfile
fields = ('name1', 'name2',)
觀點:
@login_required
def personal_data_page(request):
entry_user_profile = UserProfile.objects.get(user_ptr_id=request.user.id)
form = PersonalDataForm(instance=entry_user_profile)
if request.method == 'POST':
form = PersonalDataForm(request.POST, instance=entry_user_profile)
if form.is_valid():
form.save()
entry_user_profile.save()
return HttpResponseRedirect('/userprofile/personal_data_page_changed/')
t = loader.get_template('personal_data_page.html')
c = RequestContext(request, {'form': form,})
return HttpResponse(t.render(c))
模板:
{{ form.name1 }}
{{ form.name2 }}
{{ form.status }}
問題在於表單是第一次加載的,用戶可以在字段中看到數據庫中的數據:「name1」,「name2」。但沒有在「狀態」中看到數據庫中的數據(它顯示一個點「沒有選擇」,但必須顯示與表UserProfile.status_id中的值對應的項)
我需要當你第一次加載表單中的「狀態」表示一定的值。請幫助
感謝。但entry_user_profile = form.save()不保存值( – user3607370