概要
djangoでユーザープロフィール情報を作成しています。
メールとpwにて新規アカウント作成後、デフォルト画像を設定しておき、後からユーザーが任意で画像を変えられるようにする。
そんな仕組みです。
そこで、UpdateViewを用いて画像を任意で変えられることはうまくいっているのですが、
デフォルトの画像がうまく表示されません。
ビュー側の問題なのか、フォーム側の問題なのか、テンプレート側の問題なのか......。
解決策がお分かりになる方、お力添え願いたいです。
現状
周辺コード
update.html
{% extends "base.html" %} {% block content %} <title>pairnite(仮称)</title> </head> <body> <h1>ここは詳細プロフィール登録ページです。</h1> <h3>1分で登録(無料)</h3> <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-primary">登録</button> </form> {% endblock %}
views.py
class ProfileUpdateView(UpdateView): ''' プロフィール情報の更新 自分のプロフィールのみ編集可能 ''' model = Profile template_name = "users/update.html" form_class = ProfileForm success_url = reverse_lazy("users:home")
forms.py
class ProfileForm(forms.ModelForm): user_name = forms.CharField(required=True) CHOICES = ( ('female', '女の子',), ('male', '男の子',), ('not_applicable', 'ひみつ',) ) gender = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES, required=True) age = forms.IntegerField(required=False) CHOICES2 = ( ('PS4', 'PS4',), ('PC', 'PC',), ('swich', 'swich',), ('xbox', 'xbox',), ('mobile', 'スマホ',) ) game_device = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES2, required=False) CHOICES3 = ( ('OK', 'できる'), ('Friend', '仲良くなってから'), ('Listen_only', '聞き専',), ('TIME', '時間による',), ('NG', 'できない',) ) voice = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES3, required=False) CHOICES4 = ( ('discode', 'discode'), ('line', 'line'), ('skype', 'skype',), ('kakao', 'カカオトーク',), ('NG', 'できない',) ) voice_device = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES4, required=False) CHOICES5 = ( ('gati', 'ガチ'), ('enjoy', 'エンジョイ'), ('which', 'どちらでも',), ) play_style = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES5, required=False) CHOICES6 = ( ('1', '1 はじめて'), ('2', '2 苦手'), ('3', '3 普通'), ('4', '4 得意',), ('5', '5 職人',) ) craft_level = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES6, required=False) one_message = forms.CharField(max_length=200) # 後で追加情報追記 class Meta: model = Profile fields = ( 'user_name', 'icon', 'gender', 'age', 'game_device', 'voice', 'voice_device', 'play_style', 'play_time', 'craft_level', 'one_message')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/06 23:28
2020/06/06 23:38
2020/06/07 01:00
2020/06/07 22:44
2020/06/08 00:11 編集
2020/06/08 00:18 編集
2020/06/08 22:44
2020/06/08 22:57 編集
2020/06/08 23:01
2020/06/08 23:02
2020/06/08 23:36
2020/06/09 09:03 編集