Python Django NameError:名前 'datetime'が定義されていません

マーク

アプリのディレクトリでコマンドラインを入力した後:

python manage.py runserver

このエラーが発生します:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\Paulo\Coding\Python\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "C:\Users\Paulo\Coding\Python\lib\site-packages\django\core\management\__init__.py", line 347, in execute
    django.setup()
  File "C:\Users\Paulo\Coding\Python\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\Paulo\Coding\Python\lib\site-packages\django\apps\registry.py", line 112, in populate
    app_config.import_models()
  File "C:\Users\Paulo\Coding\Python\lib\site-packages\django\apps\config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Users\Paulo\Coding\Python\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Paulo\Coding\Django projects\Project 1\freezer\models.py", line 5, in <module>
    class Item(models.Model):
  File "C:\Users\Paulo\Coding\Django projects\Project 1\freezer\models.py", line 31, in Item
    added_date = models.DateField("date added", default=datetime.date.today)
NameError: name 'datetime' is not defined

この同様のタイトルの質問は私を助けませんでした。私が持っています

from datetime import date

私のmodels.pyで。

私はpython3.6.5とDjango2.0.4を実行しています。私はしばらく前にこのアプリをオンラインにしましたが、それはまだ機能していて、models.pyは同じです。私は自分が間違ったことをしたのか混乱しています。最近Windows10をリセットする必要があることに関連している可能性がありますか?プロセス内のPythonインストール(私のプログラムファイルディレクトリ内)や他の多くのものを削除しました。
それは私のPythonインストールの1つをそのままにしました。コマンドラインからそれを開いて日時をインポートし、関数を使用して今日の日付を返しました。

これが私のmodels.pyです:

from django.db import models
from django.utils import timezone
from datetime import date

class Item(models.Model):

    FREEZER_DRAWERS = (
            (1, 'Kitchen: Top tray'),
            (2, 'Kitchen: Middle drawer'),
            (3, 'Kitchen: Bottom drawer'),
            )

    TYPES = (
            (1, 'Raw meat'),
            (2, 'Fruit and veg'),
            (3, 'Meal'),
            )

    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField("food", max_length=100)
    item_type = models.IntegerField(choices = TYPES, default = 1)
    added_date = models.DateField("date added", default=datetime.date.today)
    where = models.IntegerField(choices = FREEZER_DRAWERS, default = 1)
    expires_date = models.DateField(default = datetime.date.today)
    on_shopping_list = models.BooleanField()

    def __str__(self):
        return self.title

ありがとうございました!これは、私がこれらのフォーラムを見て答えることができなかった時代の最初の質問です!

ウィレムヴァンオンセム

問題は、datetimeモジュールをインポートしなかった(または少なくとも修飾された方法で)ことではありませんdate。属性をインポートしました

dateクラスを使用する

あなたはdatetime.dateただで置き換えることができますdate(そしてこれはあなたが必要とする唯一の要素です):

from django.db import models
from django.utils import timezone
from datetime import date

class Item(models.Model):

    FREEZER_DRAWERS = (
            (1, 'Kitchen: Top tray'),
            (2, 'Kitchen: Middle drawer'),
            (3, 'Kitchen: Bottom drawer'),
            )

    TYPES = (
            (1, 'Raw meat'),
            (2, 'Fruit and veg'),
            (3, 'Meal'),
            )

    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField("food", max_length=100)
    item_type = models.IntegerField(choices = TYPES, default = 1)
    added_date = models.DateField("date added", default=date.today)
    where = models.IntegerField(choices = FREEZER_DRAWERS, default = 1)
    expires_date = models.DateField(default = date.today)
    on_shopping_list = models.BooleanField()

    def __str__(self):
        return self.title

モジュールのインポートを実行します

または、モジュールをインポートしてから、次を使用することもできますdatetime.date

from django.db import models
from django.utils import timezone
import datetime

class Item(models.Model):

    FREEZER_DRAWERS = (
            (1, 'Kitchen: Top tray'),
            (2, 'Kitchen: Middle drawer'),
            (3, 'Kitchen: Bottom drawer'),
            )

    TYPES = (
            (1, 'Raw meat'),
            (2, 'Fruit and veg'),
            (3, 'Meal'),
            )

    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField("food", max_length=100)
    item_type = models.IntegerField(choices = TYPES, default = 1)
    added_date = models.DateField("date added", default=datetime.date.today)
    where = models.IntegerField(choices = FREEZER_DRAWERS, default = 1)
    expires_date = models.DateField(default = datetime.date.today)
    on_shopping_list = models.BooleanField()

    def __str__(self):
        return self.title

使用auto_now_addDateField

これをどのようにインポートするかに関係なく、実際、Djangoはすでにそのようなデフォルトをサポートしています:with auto_now_add=True[Django-doc]:これはtoday。に等しいデフォルト値を追加しますさらに、それはフィールドを作りますblank=True、そしてeditable=False、それがされるようになどの形式で表示することを防ぐためではない、それはあなたが何を意味するかと思われるが、完全に同等:

# Note: makes the fields blank=True, and editable=False as well.

from django.db import models
from django.utils import timezone

class Item(models.Model):

    FREEZER_DRAWERS = (
            (1, 'Kitchen: Top tray'),
            (2, 'Kitchen: Middle drawer'),
            (3, 'Kitchen: Bottom drawer'),
            )

    TYPES = (
            (1, 'Raw meat'),
            (2, 'Fruit and veg'),
            (3, 'Meal'),
            )

    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField("food", max_length=100)
    item_type = models.IntegerField(choices = TYPES, default = 1)
    added_date = models.DateField("date added", auto_now_add=True)
    where = models.IntegerField(choices = FREEZER_DRAWERS, default = 1)
    expires_date = models.DateField(auto_now_add=True)
    on_shopping_list = models.BooleanField()

    def __str__(self):
        return self.title

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python Django NameError:名前 'モデル'が定義されていません

分類Dev

NameError:名前 'datetime'が定義されていません

分類Dev

Django NameError:名前 'bPath'が定義されていません

分類Dev

NameError:名前 'django_filters'が定義されていません

分類Dev

Python NameError:名前 'include'が定義されていません

分類Dev

Python NameError:名前が定義されていません

分類Dev

Python NameError:名前が定義されていません

分類Dev

Python JSON:NameError:名前 'false'が定義されていません

分類Dev

Python:NameError:名前 'u'が定義されていません

分類Dev

Python 3:NameError:名前 'sklearn'が定義されていません

分類Dev

NameError:名前 'logged'が定義されていません、Flask Python

分類Dev

PythonのNameError、名前が定義されていません

分類Dev

Python NameError:名前 ''が定義されていません

分類Dev

NameError:名前 'x'が定義されていません(Python 3.7)

分類Dev

NameError:名前 'reduce'はPythonで定義されていません

分類Dev

NameError:名前 'myname'はPythonで定義されていません

分類Dev

djangoエラーNameError:名前 'DEBUG'が定義されていません

分類Dev

Django NameError:名前 'モデル'が定義されていません

分類Dev

Django 3 NameError:名前 'model_name'が定義されていません

分類Dev

DjangoとTinyMCE:NameError:名前 'url'が定義されていません

分類Dev

NameError:名前 '名前'はdjango形式で定義されていません

分類Dev

NameError:名前 'q'が定義されていません(python3のみ)

分類Dev

Python NameError:名前 'file_name'が定義されていません

分類Dev

Python NameError:名前 'ElementNotVisibleException'がSeleniumで定義されていません

分類Dev

Python 3:「NameError:名前 '関数'が定義されていません」

分類Dev

NameError:名前 'python3'が定義されていません[Jenkins]

分類Dev

Python 2.7 NameError:名前 'ax1'が定義されていません

分類Dev

Python 2.7-NameError:名前 'servervpn'が定義されていません

分類Dev

Python 3 execメソッド:NameError:定義された関数の名前が定義されていません

Related 関連記事

  1. 1

    Python Django NameError:名前 'モデル'が定義されていません

  2. 2

    NameError:名前 'datetime'が定義されていません

  3. 3

    Django NameError:名前 'bPath'が定義されていません

  4. 4

    NameError:名前 'django_filters'が定義されていません

  5. 5

    Python NameError:名前 'include'が定義されていません

  6. 6

    Python NameError:名前が定義されていません

  7. 7

    Python NameError:名前が定義されていません

  8. 8

    Python JSON:NameError:名前 'false'が定義されていません

  9. 9

    Python:NameError:名前 'u'が定義されていません

  10. 10

    Python 3:NameError:名前 'sklearn'が定義されていません

  11. 11

    NameError:名前 'logged'が定義されていません、Flask Python

  12. 12

    PythonのNameError、名前が定義されていません

  13. 13

    Python NameError:名前 ''が定義されていません

  14. 14

    NameError:名前 'x'が定義されていません(Python 3.7)

  15. 15

    NameError:名前 'reduce'はPythonで定義されていません

  16. 16

    NameError:名前 'myname'はPythonで定義されていません

  17. 17

    djangoエラーNameError:名前 'DEBUG'が定義されていません

  18. 18

    Django NameError:名前 'モデル'が定義されていません

  19. 19

    Django 3 NameError:名前 'model_name'が定義されていません

  20. 20

    DjangoとTinyMCE:NameError:名前 'url'が定義されていません

  21. 21

    NameError:名前 '名前'はdjango形式で定義されていません

  22. 22

    NameError:名前 'q'が定義されていません(python3のみ)

  23. 23

    Python NameError:名前 'file_name'が定義されていません

  24. 24

    Python NameError:名前 'ElementNotVisibleException'がSeleniumで定義されていません

  25. 25

    Python 3:「NameError:名前 '関数'が定義されていません」

  26. 26

    NameError:名前 'python3'が定義されていません[Jenkins]

  27. 27

    Python 2.7 NameError:名前 'ax1'が定義されていません

  28. 28

    Python 2.7-NameError:名前 'servervpn'が定義されていません

  29. 29

    Python 3 execメソッド:NameError:定義された関数の名前が定義されていません

ホットタグ

アーカイブ