【问题标题】:Django AttributeError: 'Model' object has no attribute '_meta'Django AttributeError:“模型”对象没有属性“_meta”
【发布时间】:2016-03-26 15:11:31
【问题描述】:

我有两个应用程序 peaceoutfoodpeaceout 有一个模型 User,我在 food 模型中导入了 User。 当我运行python manage.py syncdb时出现以下错误@

    Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute
    django.setup()
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/madhu/Documents/django/my_project/pps/food/models.py", line 37, in <module>
    class Order(models.Model):
  File "/Users/madhu/Documents/django/my_project/pps/food/models.py", line 39, in Order
    user = models.Model(User)
  File "/Users/madhu/Documents/django/my_project/venv/lib/python2.7/site-packages/django/db/models/base.py", line 399, in __init__
    if args_len > len(self._meta.concrete_fields):
AttributeError: 'Model' object has no attribute '_meta'

我使用User模型的模型类是

class Order(models.Model):
    itemDict = models.CharField(max_length=200,blank=True)
    user = models.Model(User)
    cost = models.IntegerField(default=0)
    slot = models.Model(OrderSlot)
    order_date = models.DateTimeField(default=datetime.now)

    def __str__(self):
        return self.user.name

这是我的Food Models.py 这是我的Peaceout Models.py

【问题讨论】:

  • 你用models.ForeignKey链接模式,而不是models.Model

标签: python django django-models


【解决方案1】:

问题在于您定义与User 模型的关系的方式:

class Order(models.Model):
    itemDict = models.CharField(max_length=200,blank=True)
    user = models.Model(User)  # <- HERE 

如果您希望Order 拥有指向放置它的用户的链接,请使用ForeignKey field

user = models.ForeignKey(User)

还要检查“插槽”模型。同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多