Django:以基于模型的形式显示外部数据

时间:2012-09-25 08:27:30

标签: django django-forms

我想要以基于模型的形式显示一些外部数据(SOAP)。

模特:

class UserProfile(User):
    profile_email = models.EmailField()
    company_name = models.CharField()
    coc_number = models.CharField()
    gender = models.CharField()
#etc

表格:

 class UserDetailsForm(forms.ModelForm):
        class Meta:
            model = UserProfile

数据是字典:

u = {}
u['profile_email'] = 'monkey'
u['company_name'] = 'tiger'
u['coc_number'] = 'some number'
u['gender'] = 'M'

我的问题是:将数据放入表单的最佳方法是什么?到目前为止我所拥有的:

form = UserDetailsForm(initial=u)

这会生成包含所有数据的表单。 1)但这是用外部数据填充模型库形式的正确方法吗? 2)如何在选择选项中设置正确的值(例如选择国家/地区)?

1 个答案:

答案 0 :(得分:1)

  1. 是的,这是合适的方式。

  2. 您需要为dict中的select / choices字段设置 value ,类似于方法1.

  3. 例如:

    COUNTRY_CHOICES = (
        ('IN', 'India'),
        ('US', 'USA'),
        )
        ....
        #model field 
        country = models.CharField(choices=COUNTRY_CHOICES)
    
    # then set it in dict as
    u = {}
    u['country'] = 'IN'
    u['profile_email'] = 'monkey'
    u['company_name'] = 'tiger'
    u['coc_number'] = 'some number'
    u['gender'] = 'M'
    ...