質問編集履歴
8
解決方法に関して追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -185,4 +185,12 @@
|
|
|
185
185
|
```
|
|
186
186
|
models.pyにてpyという変数を定義し、
|
|
187
187
|
views.pyのpost, _ = Post.objects.get_or_create(pk=line[0])の箇所を修正することで、
|
|
188
|
-
上記のエラーは解消できるでしょうか。
|
|
188
|
+
上記のエラーは解消できるでしょうか。
|
|
189
|
+
|
|
190
|
+
__________________________________________________________
|
|
191
|
+
【追記②】
|
|
192
|
+
kacchan822様にご回答いただいたとおりにviewとmodelを修正し、
|
|
193
|
+
can110様にご指摘いただいたとおりにファイルの文字コードを「utf-8」へと変更した所、
|
|
194
|
+
無事にファイルをインポートすることができるようになりました!
|
|
195
|
+
|
|
196
|
+
コメント欄、回答欄にて適切なご指摘を下さり誠にありがとうございました。
|
7
views\.pyの修正を行ったので追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -145,4 +145,44 @@
|
|
|
145
145
|
int関数を指定しておらず、どこを変更すればcsvファイルにて日本語を読み込めるのか、分からない状態です。
|
|
146
146
|
|
|
147
147
|
pythonもdjangoも初心者のため、不足している情報等ありましたら申し訳ございません。
|
|
148
|
-
どうぞ宜しくお願い致します。
|
|
148
|
+
どうぞ宜しくお願い致します。
|
|
149
|
+
__________________________________________________________
|
|
150
|
+
【追記】
|
|
151
|
+
回答欄にてご指摘いただき、以下の修正を行いました。
|
|
152
|
+
|
|
153
|
+
①views.pyの関数の文字コードをutf_8_sigに指定
|
|
154
|
+
```python
|
|
155
|
+
def csv_import(request):
|
|
156
|
+
form_data = TextIOWrapper(
|
|
157
|
+
#文字コードをutf_8_sigに指定
|
|
158
|
+
request.FILES['csv'].file, encoding='utf_8_sig')
|
|
159
|
+
if form_data:
|
|
160
|
+
csv_file = csv.reader(form_data)
|
|
161
|
+
for line in csv_file:
|
|
162
|
+
post, _ = Post.objects.get_or_create(pk=line[0])
|
|
163
|
+
post.title = line[1]
|
|
164
|
+
post.text = line[2]
|
|
165
|
+
category, _ = Category.objects.get_or_create(name=line[3])
|
|
166
|
+
post.category = category
|
|
167
|
+
post.save()
|
|
168
|
+
```
|
|
169
|
+
②models.py上の不要な変更点を元に戻す
|
|
170
|
+
※試したこと の項目の、②の変更点を変更前(冒頭に貼ったmodels.pyのコードの状態)に戻しました
|
|
171
|
+
|
|
172
|
+
再度ファイルをアップロードしてみた所、
|
|
173
|
+
以下のエラーが発生いたしました。
|
|
174
|
+
|
|
175
|
+
'utf-8' codec can't decode byte 0x82 in position 27: invalid start byte
|
|
176
|
+
|
|
177
|
+
csvファイル冒頭の「ID」の部分に日本語の入力をしているのがおかしいのかと考え、
|
|
178
|
+
「ID」は数字、ほかは日本語の状態にしアップロードしましたが、エラー内容は変わりませんでした。
|
|
179
|
+
|
|
180
|
+
```インポートしたcsvファイル②
|
|
181
|
+
1 2 3 4
|
|
182
|
+
3 4 5 6
|
|
183
|
+
4 2 3 4
|
|
184
|
+
5 あ い う
|
|
185
|
+
```
|
|
186
|
+
models.pyにてpyという変数を定義し、
|
|
187
|
+
views.pyのpost, _ = Post.objects.get_or_create(pk=line[0])の箇所を修正することで、
|
|
188
|
+
上記のエラーは解消できるでしょうか。
|
6
csvファイルの内容を追記
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -91,6 +91,16 @@
|
|
|
91
91
|
def __str__(self):
|
|
92
92
|
return self.title
|
|
93
93
|
```
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
③CSVファイルの内容
|
|
97
|
+
```csv
|
|
98
|
+
1 2 3 4
|
|
99
|
+
3 4 5 6
|
|
100
|
+
4 2 3 4
|
|
101
|
+
あ い う え
|
|
102
|
+
|
|
103
|
+
```
|
|
94
104
|
__________________________________________________________
|
|
95
105
|
|
|
96
106
|
|
5
書式の改善
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
以下のサイトを参照に、djangoにてcsvアップローダーを作成しました。
|
|
8
8
|
__________________________________________________________
|
|
9
9
|
【参照サイト】
|
|
10
|
-
https://torina.top/detail/324/
|
|
10
|
+
[https://torina.top/detail/324/](https://torina.top/detail/324/)
|
|
11
11
|
__________________________________________________________
|
|
12
12
|
|
|
13
13
|
日本語にて記載されたcsvをインポートできるようにしたいのですが、
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
①views.py
|
|
28
28
|
___________________________
|
|
29
|
+
```python
|
|
29
30
|
import csv
|
|
30
31
|
from io import TextIOWrapper, StringIO
|
|
31
32
|
from django.http import HttpResponse
|
|
@@ -64,9 +65,11 @@
|
|
|
64
65
|
memory_file.getvalue(), content_type='text/csv')
|
|
65
66
|
response['Content-Disposition'] = 'attachment; filename=db.csv'
|
|
66
67
|
return response
|
|
68
|
+
```
|
|
67
69
|
__________________________________________________________
|
|
68
70
|
|
|
69
71
|
②models.py
|
|
72
|
+
```python
|
|
70
73
|
from datetime import datetime
|
|
71
74
|
from django.db import models
|
|
72
75
|
|
|
@@ -87,13 +90,14 @@
|
|
|
87
90
|
|
|
88
91
|
def __str__(self):
|
|
89
92
|
return self.title
|
|
93
|
+
```
|
|
90
94
|
__________________________________________________________
|
|
91
95
|
|
|
92
96
|
|
|
93
97
|
###試したこと
|
|
94
98
|
①以下のサイトを参考に、views.pyを変更
|
|
95
99
|
【参考にしたサイト】
|
|
96
|
-
http://qiita.com/niwaringo/items/d2a30e04e08da8eaa643
|
|
100
|
+
[http://qiita.com/niwaringo/items/d2a30e04e08da8eaa643](http://qiita.com/niwaringo/items/d2a30e04e08da8eaa643)
|
|
97
101
|
|
|
98
102
|
【書き換え内容】
|
|
99
103
|
書き換えた関数:csv_import
|
|
@@ -103,8 +107,8 @@
|
|
|
103
107
|
|
|
104
108
|
②以下のサイトを参考に、models.pyを変更
|
|
105
109
|
【参考にしたサイト】
|
|
106
|
-
http://docs.djangoproject.jp/en/latest/ref/unicode.html
|
|
110
|
+
[http://docs.djangoproject.jp/en/latest/ref/unicode.html](http://docs.djangoproject.jp/en/latest/ref/unicode.html)
|
|
107
|
-
http://www.metareal.org/2008/04/11/django-unicode-encode-error/
|
|
111
|
+
[http://www.metareal.org/2008/04/11/django-unicode-encode-error/](http://www.metareal.org/2008/04/11/django-unicode-encode-error/)
|
|
108
112
|
|
|
109
113
|
【書き換え内容】
|
|
110
114
|
書き換えたクラス:Category
|
4
初心者アイコンを追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
File without changes
|
3
誤字の修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
###前提・実現したいこと
|
|
2
2
|
|
|
3
|
+
実現したいこと:djangoにて、日本語で記入されたcsvをインポートできるようにしたい
|
|
3
4
|
使用言語:python3.6
|
|
4
5
|
フレームワーク:「Django1.11」
|
|
5
6
|
|
|
@@ -9,14 +10,20 @@
|
|
|
9
10
|
https://torina.top/detail/324/
|
|
10
11
|
__________________________________________________________
|
|
11
12
|
|
|
13
|
+
日本語にて記載されたcsvをインポートできるようにしたいのですが、
|
|
12
|
-
csvに「あいうえお」と入力しインポートした所、以下のエラーが発生しました。
|
|
14
|
+
試しにcsvに「あいうえお」と入力しインポートした所、以下のエラーが発生してしまいました。
|
|
13
15
|
|
|
14
16
|
ValueError at /import/csv_import/
|
|
15
17
|
invalid literal for int() with base 10: 'あ'
|
|
16
18
|
|
|
19
|
+
こちらのバグを修正し、日本語のcsvをインポートできるようにするためには、
|
|
20
|
+
どこを修正したら良いでしょうか。
|
|
21
|
+
|
|
17
22
|
###該当のソースコード
|
|
18
23
|
__________________________________________________________
|
|
19
24
|
|
|
25
|
+
以下に、views.pyとmodels.pyのソースコードを記載いたします。
|
|
26
|
+
|
|
20
27
|
①views.py
|
|
21
28
|
___________________________
|
|
22
29
|
import csv
|
2
誤字を修正しました
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
###前提・実現したいこと
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
使用言語:python3.6
|
|
4
4
|
フレームワーク:「Django1.11」
|
|
5
5
|
|
1
使用しているDjangoのバージョンが「1,」と表示されてしまっていたので修正しました
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
###前提・実現したいこと
|
|
2
2
|
ここに質問したいことを詳細に書いてください
|
|
3
3
|
使用言語:python3.6
|
|
4
|
-
フレームワーク:Django1.11
|
|
4
|
+
フレームワーク:「Django1.11」
|
|
5
5
|
|
|
6
6
|
以下のサイトを参照に、djangoにてcsvアップローダーを作成しました。
|
|
7
7
|
__________________________________________________________
|