前提・実現したいこと
Django上でWebアプリを作成しています。
「新規店舗の情報を記載して、登録ボタンで店舗登録を行う」機能を実装中に以下のエラーが発生しました。
以下は、エラーの原因とされる部分のみ記載しています。
該当のソースコード
まずはmodels.pyです。
python
class ShopInfo(models.Model): name = models.CharField(max_length=100, null=False, blank=False) address = models.CharField(max_length=100, null=False, blank=False) phonenumber = models.CharField(max_length=100, null=False, blank=False) now_time = models.DateTimeField(verbose_name= '現在時刻', default=timezone.now) open_time = models.DateTimeField(verbose_name= '開店時刻', default=timezone.now) close_time = models.DateTimeField(verbose_name= '閉店時刻', default=timezone.now) day_off_Mon = models.CharField(max_length=10, null=False, blank=False) day_off_Tue = models.CharField(max_length=10, null=False, blank=False) day_off_Wed = models.CharField(max_length=10, null=False, blank=False) day_off_Thu = models.CharField(max_length=10, null=False, blank=False) day_off_Fri = models.CharField(max_length=10, null=False, blank=False) day_off_Sat = models.CharField(max_length=10, null=False, blank=False) day_off_Sun = models.CharField(max_length=10, null=False, blank=False) website = models.URLField() def __str__(self): ret = '<' + str(self.name) + '>' + self.address + self.phonenumber + self.open_time + '~' + self.close_time + self.day_off_Mon + self.day_off_Thu + self.day_off_Wed + self.day_off_Thu + self.day_off_Fri + self.day_off_Sat + self.day_off_Sun + self.website return ret
次にviews.pyです。
実際にエラーに関わる部分は下のインスタンス生成のところです。
python
def SubmitShopInfo(request): # 名前を取得 if "name" in request.GET: tmp_name = request.GET.get("name") # 空欄の時は空白に設定 if len(tmp_name) > 0: name = tmp_name else: name = "" # 所在地を取得 if "address" in request.GET: tmp_address = request.GET.get("address") # 空欄の時は空白に設定 if len(tmp_address) > 0: address = tmp_address else: address = "" # 電話番号を取得 if "phonenumber" in request.GET: tmp_phonenumber = request.GET.get("phonenumber") # 空欄の時は空白に設定 if len(tmp_phonenumber) > 0: phonenumber = tmp_phonenumber else: phonenumber = "" # 開店時間を取得 if "open" in request.GET: tmp_open = request.GET.get("open") # 空欄の時は空白に設定 if len(tmp_open) > 0: open = tmp_open else: open = "" # 閉店時間を取得 if "close" in request.GET: tmp_close = request.GET.get("close") # 空欄の時は空白に設定 if len(tmp_close) > 0: close = tmp_close else: close = "" # 定休日を取得(月) if "day_off_Mon" in request.GET: tmp_day_off_Mon = request.GET.get("day_off_Mon") # 空欄の時は空白に設定 if len(tmp_day_off_Mon) > 0: day_off_Mon = tmp_day_off_Mon else: day_off_Mon = "" # 定休日を取得(火) if "day_off_Tue" in request.GET: tmp_day_off_Tue = request.GET.get("day_off_Tue") # 空欄の時は空白に設定 if len(tmp_day_off_Tue) > 0: # global day_off_Tue day_off_Tue = tmp_day_off_Tue else: day_off_Tue = "" # 定休日を取得(水) if "day_off_Wed" in request.GET: tmp_day_off_Wed = request.GET.get("day_off_Wed") # 空欄の時は空白に設定 if len(tmp_day_off_Wed) > 0: day_off_Wed = tmp_day_off_Wed else: day_off_Wed = "" # 定休日を取得(木) if "day_off_Thu" in request.GET: tmp_day_off_Thu = request.GET.get("day_off_Thu") # 空欄の時は空白に設定 if len(tmp_day_off_Thu) > 0: day_off_Thu = tmp_day_off_Thu else: day_off_Thu = "" # 定休日を取得(金) if "day_off_Fri" in request.GET: tmp_day_off_Fri = request.GET.get("day_off_Fri") # 空欄の時は空白に設定 if len(tmp_day_off_Fri) > 0: day_off_Fri = tmp_day_off_Fri else: day_off_Fri = "" # 定休日を取得(土) if "day_off_Sat" in request.GET: tmp_day_off_Sat = request.GET.get("day_off_Sat") # 空欄の時は空白に設定 if len(tmp_day_off_Sat) > 0: day_off_Sat = tmp_day_off_Sat else: day_off_Sat = "" # 定休日を取得(日) if "day_off_Sun" in request.GET: tmp_day_off_Sun = request.GET.get("day_off_Sun") # 空欄の時は空白に設定 if len(tmp_day_off_Sun) > 0: day_off_Sun = tmp_day_off_Sun else: day_off_Sun = "" # ウェブサイトのURLを取得 if "website" in request.GET: tmp_website = request.GET.get("website") # 空欄の時は空白に設定 if len(tmp_website) > 0: website = tmp_website else: website = "" # 新規の店舗情報としてインスタンスを作成 myinstance = models.ShopInfo.objects.create( name = name, # 店名 address = address, # 所在地 phonenumber = phonenumber, #電話番号 open_time = open, #開店時間 close_time = close, #閉店時間 day_off_Mon = day_off_Mon, #定休日(月)###エラーはここで出ています。 day_off_Tue = day_off_Tue, #(火) day_off_Wed = day_off_Wed, #(水) day_off_Thu = day_off_Thu, #(木) day_off_Fri = day_off_Fri, #(金) day_off_Sat = day_off_Sat, #(土) day_off_Sun = day_off_Sun, #(日) website = website, #ウェブサイト ) # 店舗情報をを保存する myinstance.save() # オプション設定 options = [] # 結果出力処理 return redirect('/index/')
一応index.htmlです。
python
<div class="createshop" id="create_shop"> <a href=''>お店の新規登録</a> <div class="hidden"> <form method="GET" action="{% url 'search_shop:submitshopinfo' %}" id="shopinfo_form"> {% csrf_token %} <label>店名:<input type="text" name="name"></label></br> <label>所在地:<input type="text" name="address"></label></br> <label>電話番号:<input type="text" name="phonenumber"></label></br> <label>営業時間:<input type="time" name="open">~<input type="time" name="close"></label></br> 定休日:<label><input type="checkbox" value="Mon" name='day_off_Mon'>月</label> <label><input type="checkbox" value="Tue" name='day_off_Tue'>火</label> <label><input type="checkbox" value="Wed" name='day_off_Wed'>水</label> <label><input type="checkbox" value="Thu" name='day_off_Thu'>木</label> <label><input type="checkbox" value="Fri" name='day_off_Fri'>金</label> <label><input type="checkbox" value="Sat" name='day_off_Sat'>土</label> <label><input type="checkbox" value="Sun" name='day_off_Sun'>日</label></br> <label>ウェブサイト:<input type="text" name="website"></label></br> <label><input type="submit" value="登録"></label> </form> </div> </div>
発生している問題・エラーメッセージ
これらにpython manage.py runserverを実行すると、次のようなエラーが発生しました。
local variable 'day_off_Mon' referenced before assignment
割り当て前にday_off_Monという値が参照されているという内容でした。
day_off_Monだけではなく、day_off_Tueからday_off_Sonまでにも同じ問題が発生していると思われます。
しかし、views.pyのSubmitShopInfoのどこで参照されているかが分かりません。
初歩的なことですが、どなたか解決方法をご教授お願い致します。
まだ回答がついていません
会員登録して回答してみよう