Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django在创建模型时出错_Python_Django - Fatal编程技术网

Python Django在创建模型时出错

Python Django在创建模型时出错,python,django,Python,Django,我在使用外来对象创建用户配置文件时遇到问题 我有一个用户,我想为该用户附加一个帐户类型 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)

我在使用外来对象创建用户配置文件时遇到问题

我有一个用户,我想为该用户附加一个帐户类型

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
问题是我得到了以下错误:

account = models.ForeignKey(Account, unique=True)
NameError: name 'Account' is not defined
如何调用外键的Account类

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

您可以使用
“app\u name.Account”
而不是
Account
。用你的应用程序的名称替换
app\u name

根据John Gordon的评论,我将帐户移到了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)

谢谢大家:)

重新排列文件,以便首先声明帐户。将帐户类放在UserProfile类之上John Gordon将帐户向上移动成功了您是否尝试过执行此操作,它是否真的有效