質問するログイン新規登録

回答編集履歴

7

修正

2020/06/08 09:02

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -16,10 +16,12 @@
16
16
  ```
17
17
  ```HTML
18
18
  {% load widget_tweaks %}
19
+ <form method="post" ・・・enctype="multipart/form-data">
19
- <label for="load">
20
+ <label for="load">
20
- <img src="{{request.user.image.url}}" alt="" id="preview">
21
+ <img src="{{request.user.image.url}}" alt="" id="preview">
21
- <div style="display:none;">{% render_field form.image id="load" %}</div>
22
+ <div style="display:none;">{% render_field form.image id="load" %}</div>
22
- </label>
23
+ </label>
24
+ </form>
23
25
  <!-- jsを使う -->
24
26
  <script type="text/javascript">
25
27
  function preview_image(obj) {

6

修正

2020/06/08 09:02

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -1,16 +1,34 @@
1
1
  UpdateViewでは、デフォルトでは画像は表示されず、
2
2
  URLしか表示されません。
3
3
  ----追記欄----
4
+ こんな感じにいけませんか?
5
+ [widget_tweaks](https://wonderwall.hatenablog.com/entry/2018/03/18/210000)を使い、
6
+ インストール
7
+ ```
8
+ pip install django-widget-tweaks
9
+ ```settings.py の INSTALLED_APPS に追加
10
+ ```Python
11
+ INSTALLED_APPS = [
12
+ "django.contrib.admin",
13
+ ・・・
14
+ "widget_tweaks", # 追加
15
+ ]
16
+ ```
17
+ ```HTML
18
+ {% load widget_tweaks %}
19
+ <label for="load">
20
+ <img src="{{request.user.image.url}}" alt="" id="preview">
21
+ <div style="display:none;">{% render_field form.image id="load" %}</div>
22
+ </label>
4
- > 個別でフォーム表示
23
+ <!-- jsを使う -->
24
+ <script type="text/javascript">
25
+ function preview_image(obj) {
26
+ var fileReader = new FileReader();
27
+ fileReader.onload = (function() {
28
+ document.getElementById("preview").src = fileReader.result;
29
+ });
30
+ fileReader.readAsDataURL(obj.files[0]);
31
+ }
32
+ </script>
5
33
 
6
- そうしてから、{{form.icon}}ごと消さないと多分「現在:」みたいなのが残るので、
7
- ```HTML
34
+ ```
8
- <div style="display:none;">
9
- {{form.icon}}
10
- </div>
11
- ```非表示にして、
12
- ```HTML
13
- <img src="{{request.user.icon.url}}" alt="">
14
- ```これを重ねれば、現在の写真をクリックしたら、ファイルが開いて参照できるみたいになります。
15
- 写真を選択した瞬間、画像を変えるにはJavaScriptが必要です。
16
- (短いコードでいけると思う)

5

修正

2020/06/08 00:11

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  そうしてから、{{form.icon}}ごと消さないと多分「現在:」みたいなのが残るので、
7
7
  ```HTML
8
- <div style="opacity:0;">
8
+ <div style="display:none;">
9
9
  {{form.icon}}
10
10
  </div>
11
11
  ```非表示にして、

4

修正

2020/06/07 23:59

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  そうしてから、{{form.icon}}ごと消さないと多分「現在:」みたいなのが残るので、
7
7
  ```HTML
8
- <div style="opacity:0">
8
+ <div style="opacity:0;">
9
9
  {{form.icon}}
10
10
  </div>
11
11
  ```非表示にして、

3

修正

2020/06/07 23:22

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  そうしてから、{{form.icon}}ごと消さないと多分「現在:」みたいなのが残るので、
7
7
  ```HTML
8
- <div style="display: none;">
8
+ <div style="opacity:0">
9
9
  {{form.icon}}
10
10
  </div>
11
11
  ```非表示にして、

2

修正

2020/06/07 23:19

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -1,4 +1,4 @@
1
- UpdateViewでは、デフォルト画像は表示されず、
1
+ UpdateViewでは、デフォルトでは画像は表示されず、
2
2
  URLしか表示されません。
3
3
  ----追記欄----
4
4
  > 個別でフォーム表示

1

修正

2020/06/07 21:21

投稿

ForestSeo
ForestSeo

スコア2724

answer CHANGED
@@ -1,2 +1,16 @@
1
1
  UpdateViewでは、デフォルト画像は表示されず、
2
- URLしか表示されません。
2
+ URLしか表示されません。
3
+ ----追記欄----
4
+ > 個別でフォーム表示
5
+
6
+ そうしてから、{{form.icon}}ごと消さないと多分「現在:」みたいなのが残るので、
7
+ ```HTML
8
+ <div style="display: none;">
9
+ {{form.icon}}
10
+ </div>
11
+ ```非表示にして、
12
+ ```HTML
13
+ <img src="{{request.user.icon.url}}" alt="">
14
+ ```これを重ねれば、現在の写真をクリックしたら、ファイルが開いて参照できるみたいになります。
15
+ 写真を選択した瞬間、画像を変えるにはJavaScriptが必要です。
16
+ (短いコードでいけると思う)