質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

676閲覧

pipでモジュールを確かにインストールしたはずが、pythonでimportできない

Mr_PONPON_MARU

総合スコア35

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

1クリップ

投稿2023/04/27 02:53

編集2023/04/27 07:38

実現したいこと

Djangoでマークダウンエディターの実装するために、django-mdeditorモジュールをインストールし、models.pyでimportを行いました。

models.py

1from django.db import models 2from accounts.models import CustomUser 3from mdeditor.fields import MDTextField 4 5class Article(models.Model): 6 """略""" 7 post_user = models.ForeignKey(CustomUser, verbose_name='Post User', on_delete=models.CASCADE,) 8 content = models.MDTextField(verbose_name='content passage',)

発生している問題・エラーメッセージ

マイグレーションの実行してみると下記のエラーメッセージが表示され、どうやらmodels.py3行目の"from mdeditor.fields import MDTextField"がうまく読み込まれていないようだと理解しました。

Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages/django/core/management/__init__.py", line 377, in execute django.setup() File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate app_config.import_models() File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models self.models_module = import_module(models_module_name) File "/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/Users/xxx/Desktop/prototyping/article/models.py", line 7, in <module> class Article(models.Model): File "/Users/xxx/Desktop/prototyping/article/models.py", line 19, in Article content = models.MDTextField(verbose_name='content passage',) AttributeError: module 'django.db.models' has no attribute 'MDTextField'

試したこと

ターミナルでもう一度$ pip install django-mdeditorを実行すると、
"/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages (0.1.20)"に既にあると言われてしまいました。

Requirement already satisfied: django-mdeditor in /Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages (0.1.20)

もしかしたらimport文が探しに行っている場所に上記ディレクトリが無いのかもしれないと思いと思い、pythonインタラクティブシェルで下記を実行してみると、どうやらそういう訳では無いようです

>>> import sys, pprint >>> pprint.pprint(sys.path) ['', '/Users/xxx/anaconda3/envs/venv_prototyping/lib/python37.zip', '/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7', '/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/lib-dynload', '/Users/xxx/anaconda3/envs/venv_prototyping/lib/python3.7/site-packages']

補足情報(FW/ツールのバージョンなど)

開発環境はMacOS、Django3系、Python3.7.6 、Anaconda、Visual Studio Codeを利用しています

参考元

・GitHub
https://github.com/pylixm/django-mdeditor
・【Django】Markdownエディタを実装する方法【簡単】
https://yuki.world/django-markdown-implement/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2023/04/27 04:04

質問に記載のエラーメッセージよりも上に「Traceback」と書かれてたら、そこから下をできるだけ省略せずに質問に記載してください (ここに書くのではなく、質問を編集して追記する) ユーザー名等の個人情報は伏せ字でいいですが、それ以外はできるだけそのまま記載してください
Mr_PONPON_MARU

2023/04/27 05:55

コメントありがとうございます。 エラー文を抜粋から全文掲載へと修正いたしました
TakaiY

2023/04/27 06:58

> from mdeditor.fields import MDTextField このようにインポートしているのに、 > content = models.MDTextField(verbose_name='content passage',) このように、modelsのメンバーとして使おうとうしているのが気になります。 このコードは何を参考にしていますか?
TakaiY

2023/04/27 07:29

ここは質問に対するコメントを書くところですので、回答は質問を編集して追記したほうが回答が付きやすいですよ。
Mr_PONPON_MARU

2023/04/27 07:39

ありがとうございます。 参考元を加筆しました
guest

回答1

0

ベストアンサー

コメントへのレスポンスから、本家のサイトを参考にされているということですが、質問でエラーになったような使いかたはしていないので、使いかたを再確認されるといいと思います。

参考サイトのコード

python

1from django.db import models 2from mdeditor.fields import MDTextField 3 4class ExampleModel(models.Model): 5 name = models.CharField(max_length=10) 6 content = MDTextField()

投稿2023/04/27 07:31

TakaiY

総合スコア12765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_PONPON_MARU

2023/04/27 07:49

ご回答有難うございます。 content = MDTextField()とすることで解決いたしました。 modelsのメンバーとして扱っていたことが全ての原因であったようで、大変お恥ずかしいです。 これからは参考元を要確認するよう心がけます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問