2017-09-07 6 views
0

私はmodels.pyでエリアデータモデルを作成しました。私は、移行コマンドを実行するとNameError:name 'Area'が定義されていません

#coding:utf-8 
from django.db import models 
class User(models.Model): 
    name = models.CharField(max_length=200,null=True) 
    age = models.CharField(max_length=200,null=True) 
    area = models.ForeignKey(Area) 

class Area(models.Model): 
    name = models.CharField(max_length=20, verbose_name='area') 

class Prefecture(models.Model): 
    name = models.CharField(max_length=20, verbose_name='city') 
    area = models.ForeignKey(Area) 

class City(models.Model): 
    name = models.CharField(max_length=20, verbose_name='region') 
      prefecture = models.ForeignKey(Prefecture) 

class Price(models.Model): 
    name = models.CharField(max_length=20, verbose_name='price') 
      PRICE_RANGE = (
       ('a', 'under500'), 
       ('b', '500-1000'), 
       ('c', 'upper1000'), 
      ) 
    price_range = models.CharField(max_length=1, choices=PRICE_RANGE) 
    city = models.ForeignKey(City) 

は、NameError: name 'Area' is not defined area = models.ForeignKey(Area)エラーhappens.Howeverは、私はエリアを定義したので、私はこの問題を解決する必要がありhappens.How私は本当に、なぜこのエラーを理解できないのですか?

答えて

0

Userクラスの前にAreaクラスを定義してください。物事はうまくいくはずです。

class Area(models.Model): 
    name = models.CharField(max_length=20, verbose_name='area', null=True) 

class User(models.Model): 
    name = models.CharField(max_length=200,null=True) 
    age = models.CharField(max_length=200,null=True) 
    area = models.ForeignKey('Area') 

class Prefecture(models.Model): 
    name = models.CharField(max_length=20, verbose_name='city') 
    area = models.ForeignKey('Area') 

class City(models.Model): 
    name = models.CharField(max_length=20, verbose_name='region') 
      prefecture = models.ForeignKey('Prefecture') 

class Price(models.Model): 
    name = models.CharField(max_length=20, verbose_name='price') 
      PRICE_RANGE = (
       ('a', 'under500'), 
       ('b', '500-1000'), 
       ('c', 'upper1000'), 
      ) 
    price_range = models.CharField(max_length=1, choices=PRICE_RANGE) 
    city = models.ForeignKey('City') 
+1

または引用エリア、このような: '面積= models.ForeignKey( 'エリア')そうです' – slackmart

+0

@slackmart。私はそれを逃した... – Varad

+0

@バラッドthxのurの答え。私は、コードを書いたが、私は./manage.pyのmakemigrationsを実行すると、エラーが発生しましたあなたは、デフォルト;これを行うことはできません(データベースには既存の行を移入するための何かが必要です)。 修正を選択してください: 1)今すぐ一回限りのデフォルトを提供してください(この列にnull値を持つ既存のすべての行に設定されます) 2)終了し、models.pyにデフォルトを追加します。 – user8504021

関連する問題