私は初心者なので、Djangoを使用して最初の本当の問題を抱えています。これを理解することはできません。
私はDjango アダプターを使用しています (他の提案も受け付けていますが、モデルにマップされ、うまく機能します)。とにかく、データをインポートしたいのですが、順序がユーザーによって指定されていることを確認してください。
これは私がこれまでに持っているものです...
Forms.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 などと一致します。
これどうやってするの?