0

是的,我在使用 Django 时遇到了第一个真正的问题,因为我是新手,我无法弄清楚这一点。

我正在使用Django 适配器(尽管我愿意接受其他建议,但它映射到模型并且效果很好)。无论如何,我想导入数据,但要确保订单是由用户指定的。

这是我目前所拥有的......

表格.py

此表单会显示给用户,然后他们在其中选择哪一列代表其 CSV 上传中的哪个字段。

COL_CHOICES = [
    ('NONE', 'No Import'),
    ('first_name', 'First Name'),
    ('last_name', 'Last Name'),
    ('company', 'Company'),
    ('mobile', 'Mobile Number'),
    ('email', 'Email Address'),
    ]


class ConfiguratorForm(forms.Form):
    col1 = forms.TypedChoiceField(choices=COL_CHOICES, initial='first_name')
    col2 = forms.TypedChoiceField(choices=COL_CHOICES, initial='first_name')
    col3 = forms.TypedChoiceField(choices=COL_CHOICES, initial='first_name')
    col4 = forms.TypedChoiceField(choices=COL_CHOICES, initial='first_name')
    col5 = forms.TypedChoiceField(choices=COL_CHOICES, initial='first_name')

回到我的 view.py POST 到以下...

  if request.method == 'POST':
        form = ConfiguratorForm(data=request.POST)
        # Try and import CSV
        ContactCSVModel.import_data(data=upload.filepath, extra_fields=[
            {'value': upload.group_id, 'position': 5},
            {'value': upload.uploaded_by.id, 'position': 6}])

这是现在的问题。

class ContactCSVModel(CsvModel):


    first_name = CharField()
    last_name = CharField()
    company = CharField()
    mobile = CharField()
    group = DjangoModelField(Group)
    contact_owner = DjangoModelField(User)


    class Meta:
        delimiter = ","
        dbModel = Contact
        update = {'keys': ["mobile", "group"]}

正如您在上面看到的,它目前仅按照上面列出的顺序匹配 first_name、last_name 等,而不是用户指定的顺序。

我怎样才能做到这一点?

4

0 回答 0