我希望将我的观点和表单分开,就像你可以使用模型一样。您是否能够创建视图和表单的目录,如果是,那么每个 init .py文件中的内容。
更新
我制作了我的文件夹,但我一直收到错误。这是我的所有代码信息:
myproject结构(缩写):
myproject/
myproject/
name/
forms/
__init__.py
name_form.py
models/
__init__.py
name_model.py
urls.py
views/
__init__.py
name_view.py
模型/的初始化的.py
from .name_model import Name
模型/ name_model.py
from django.db import models
from django.urls import reverse
class Name(models.Model):
...
forms/__init__.py
和views/__init__.py
是空白文件。
urls.py
from django.urls import path
from name.views import name_view
app_name = 'name'
urlpatterns = [
path('', views.name_view, name='name-view'),
]
形式/ name_form.py
from django.forms import ModelForm, TextInput
from name.models import Name
class NameForm(ModelForm):
class Meta:
model = Name
视图/ name_view.py
from django.shortcuts import render, redirect
from name.forms import NameForm
def name_view(request):
...
我在终端中运行python3 manage.py makemigrations
并获取:
/myproject/name/views/name_view.py", line 4, in <module>
from name.forms import NameForm
ImportError: cannot import name 'NameForm'
如果没有ModelForm
我认为你不能成为model
,我会运行python3 manage.py migrate
并得到同样的错误。
我创建了一个项目来隔离这个问题。没有它工作的文件夹,除非我搞砸我的原始代码试图让它工作。
答案 0 :(得分:2)
只需为您的表单创建一个文件夹和一个文件夹,然后将空__init__.py
文件放入每个文件夹即可。 __init__.py
文件的目的是告诉python将文件夹视为模块。然后将views.py
文件和forms.py
文件放在各自的目录中,现在就可以了...
from myproject.path.to.views import MyView
from myproject.path.to.forms import MyForm
......好像是任何其他模块。它是什么。