【问题标题】:Why it throws an error? `forms.py Cannot import model from models.py`为什么会抛出错误? `forms.py 无法从 models.py 导入模型`
【发布时间】:2019-04-04 10:57:37
【问题描述】:

我正在尝试使用 django 表单。但是每当我尝试从 models.py 导入设计模型时,我都会得到

无法导入名称设计

这是我的 forms.py

from django import forms
from .models import Design 
class NewDesign(forms.ModelForm):
        class Meta:
            model = Design
            fields = ['category', 'designImage']

这是我的 models.py

from django.db import models
class Design(models.Model):
    user=models.ForeignKey(User, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, related_name='design_category', on_delete=models.CASCADE)
    designImage=models.ImageField()
    timeuploaded=models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return str(self.user)

我不断收到导入错误

ImportError: 无法导入名称“设计” models.py 和 forms.py 都在同一个 App 文件夹中。我不知道为什么它不工作,但它应该工作....任何帮助将不胜感激。谢谢

error massege image

project structure

models.py 和forms.py 都在同一个目录中..以前使用过表单,但不明白为什么现在不工作...谢谢

【问题讨论】:

  • 发布完整的错误引用
  • 你可能有一个循环导入(models.py 从另一个模块导入一些东西,该模块从models.py 导入)。我们无法判断,因为您尚未发布完整的回溯,并且仅显示了您的 models.py 和 forms.py 的一部分。
  • 能分享一下你的目录结构吗?
  • @ Alasdai, Devang Padhiyar...感谢您的友好回复。错误回溯图像和我的目录结构将包含在原始问题编辑中
  • 错误显示forms有from .models import Design,但是models有from . import forms,所以你有一个循环导入。您通常不必在 models.py 中导入表单。你在那里用得怎么样。

标签: django forms django-models django-forms


【解决方案1】:

你有一个循环导入,因为forms.py 有

from .models import Design 

而models.py 有

from . import forms

您通常不必在 models.py 中导入 forms,因此如果您不使用它,只需删除导入即可。

【讨论】:

  • 感谢您的帮助,朋友们......它按照@Alasdair的建议工作 请我有一个关于 django-registration-redux 的问题(我是用于用户身份验证和验证)......如何我可以阻止经过身份验证的用户访问登录页面或注册页面吗...我知道我必须对这个第 3 方应用程序进行一点操作才能做到这一点.. 尤其是在 views.py 这里是链接...stackoverflow.com/questions/55520516/…
  • 那是一个完全不同的问题,恐怕我无能为力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2019-09-24
  • 2016-01-04
  • 1970-01-01
  • 2017-05-26
  • 2014-08-24
相关资源
最近更新 更多