2017-10-05 17 views
0

異物を含むユーザープロファイルの作成に問題があります。モデルの作成時にDjangoエラーが発生しました

私はユーザーがおり、そのユーザーにアカウントタイプを添付したいと考えています。私は外部キーのAccountクラスを呼び出すにはどうすればよい

account = models.ForeignKey(Account, unique=True) 
NameError: name 'Account' is not defined 

model.py

from __future__ import unicode_literals 

from django.db import models 
from django.contrib.auth.models import User 


class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    account = models.ForeignKey(Account, unique=True) 

class Account(models.Model): 
    reports = models.IntegerField(default=3) 
    accounttype = models.CharField(default='Free', max_length=250) 
    description = models.CharField(default='N/A', max_length=250) 
    monthlycost = models.FloatField(default=0.0) 

    def __str__(self): 
     return self.user.username + " - " + self.accounttype 

問題は、私は以下のエラーを取得していますか?

+2

を働いたとしてAccount'が最初に宣言されている 'ように、あなたのファイルを並べ替えます。 –

+0

あなたのAccountクラスをUserProfileクラスの上に置く – Satendra

+0

John Gordonはアカウントを動かすことを –

答えて

1
from __future__ import unicode_literals 

from django.db import models 
from django.contrib.auth.models import User 


class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    account = models.ForeignKey("app_name.Account", unique=True) 

class Account(models.Model): 
    reports = models.IntegerField(default=3) 
    accounttype = models.CharField(default='Free', max_length=250) 
    description = models.CharField(default='N/A', max_length=250) 
    monthlycost = models.FloatField(default=0.0) 

    def __str__(self): 
     return self.user.username + " - " + self.accounttype 

Accountの代わりに"app_name.Account"を使用できます。 app_nameをあなたのアプリの名前に置き換えてください。

+0

でやってみましたか? – Sanket

0

ジョン・ゴードンのコメントごとに、私はのUserProfileの上にアカウントを移動し、それが

class Account(models.Model): 
    reports = models.IntegerField(default=3) 
    accounttype = models.CharField(default='Free', max_length=250) 
    description = models.CharField(default='N/A', max_length=250) 
    monthlycost = models.FloatField(default=0.0) 

    def __str__(self): 
     return self.user.username + " - " + self.accounttype 


class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    account = models.ForeignKey(Account, unique=True) 

みんなありがとう:)

関連する問題