私はdjangoで処理する1つの大きなフォームを持っています. 私のモデルは以下の通りです
class MerchantContact(models.Model):
merchant = models.OneToOneField(MerchantProfile, related_name="merchant_contact")
ContactUsAddressLine1 =models.CharField(max_length=16)
ContactUsAddressLine2 =models.CharField(max_length=16)
ContactUsAddressCity =models.CharField(max_length=16)
ContactUsAddressState =models.CharField(max_length=4)
ContactUsAddressZip=models.CharField(max_length=16)
ContactUsPhone=models.CharField(max_length=16)
ContactUsAddressFax=models.CharField(max_length=16)
ContactUsEmail=models.CharField(max_length=64)
ContactUsBusinessHours=models.CharField(max_length=256)
次のロジックを使用してフォームに入力しました
def merchantAccountInfo(request):
#check if data is already there or not
usr=UserProfile.objects.get(user_id=request.user.id)
merchant=MerchantProfile.objects.get(user_id=usr.id)
try:
mc=MerchantContact.objects.get(merchant_id=merchant.id)
formdata=MerchantContactForm(
{'id':mc.id,
'ContactUsAddressLine1':mc.ContactUsAddressLine1,
'ContactUsAddressLine2':mc.ContactUsAddressLine2,
'ContactUsAddressCity':mc.ContactUsAddressCity,
'ContactUsAddressState':mc.ContactUsAddressState,
'ContactUsAddressZip':mc.ContactUsAddressZip,
'ContactUsPhone':mc.ContactUsPhone,
'ContactUsAddressFax':mc.ContactUsAddressFax,
'ContactUsEmail':mc.ContactUsEmail,
'ContactUsBusinessHours':mc.ContactUsBusinessHours
}
)
except MerchantContact.DoesNotExist:
formdata=MerchantContactForm()
return render_to_response('account_info.html',locals(),context_instance=RequestContext(request))
上記のコードは完全に機能していますが、私の懸念は、フォームが 30 以上のフィールドで大きすぎる可能性があることです。各フィールドをインラインで渡すのは面倒すぎる..
時間とコード行を節約するための他の代替手段はありますか?