NameError: name 'settings' is not defined とエラーが出ました。
今、サーバーに画像を格納できるシステムを作っています。
親アプリの中に、ImageGetというアプリケーションを作りまして、
その中にimage/testというディレクトリを用意してtestフォルダにmodels.pyを入れて
その中に
from __future__ import unicode_literals from django.db import models # Create your models here. class BlogDataModel(models.Model): """ model """ title = models.CharField(max_length=100) image_url = models.ImageField(upload_to='test/') contents = models.TextField() date = models.DateField(default=datetime.now) def __encode__(self): return \ self.title, self.contents
と書きました。
そのアプリの中のsettings.pyには
# 画像データ格納先 MEDIA_ROOT = os.path.join(BASE_DIR, 'image') MEDIA_URL = '/image/'
と、view.pyには
import os import uuid from PIL.Image import Image from django.views.generic import View from test_app.settings import MEDIA_ROOT class ImageTop(View): """ 画像に設定する画像処理 古い画像ファイルの削除処理 """ def get_image_top_path(self, filename): """ カスタマイズした画像pathを取得する UUIDにして画像ファイル名をhash化 :param self: インスタンス(model) :param filename: 元の画像ファイル :return: カスタマイズしたファイル名を含む画像パス """ prefix = 'test/' name = str(uuid.uuid4()).replace('-', '') extension = os.path.splitext(filename)[-1] return prefix + name + extension def delete_previous_file(self, function): """ 不要となる古い画像ファイルを削除する為のでコレータ実装 :param function: メイン関数 :return: wrapper """ def wrapper(*args, **kwargs): self = args[0] #保存前の画像ファイル名取得 result = Image.objects.filter(pk=self.pk) previous = result[0] if len(result) else None super(Image, self).save() #関数実行 result = function(*args, **kwargs) #保存前のファイルがあったら削除 if previous: os.remove(MEDIA_ROOT + '/' + previous.image.name) return result return wrapper<span style="font-family: Arial;"> </span>
と書きました。
親アプリの中に必要なものが書かれていなかったから、このエラーが出たのでしょうか?
どのように直せばよいのでしょうか?

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/14 13:05
2017/01/14 13:38