Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
Django 我可以创建一个包含表单和视图的文件夹,并使用一个_init__; py.py文件,比如models和test吗?_Django_Django Forms_Django Views - Fatal编程技术网

Django 我可以创建一个包含表单和视图的文件夹,并使用一个_init__; py.py文件,比如models和test吗?

Django 我可以创建一个包含表单和视图的文件夹,并使用一个_init__; py.py文件,比如models和test吗?,django,django-forms,django-views,Django,Django Forms,Django Views,我想保持我的观点和形式分开,就像你可以与模型。您是否能够创建视图和表单的目录,如果能够,则在init.py文件中为每个视图和表单创建什么目录 更新: 我制作了我的文件夹,但我不断出错。以下是我所有的代码信息: 我的项目结构(缩写): 型号/init.py from .name_model import Name 型号/名称\u model.py from django.db import models from django.urls import reverse class Name(

我想保持我的观点和形式分开,就像你可以与模型。您是否能够创建视图和表单的目录,如果能够,则在init.py文件中为每个视图和表单创建什么目录


更新:

我制作了我的文件夹,但我不断出错。以下是我所有的代码信息:

我的项目结构(缩写):

型号/init.py

from .name_model import Name
型号/名称\u model.py

from django.db import models
from django.urls import reverse


class Name(models.Model):
    ...
forms/\uuuuu init\uuuuuuuuuuupy
views/\uuuuuuu init\uuuuuuuuuuuuuupy
是空白文件

url.py

from django.urls import path

from name.views import name_view


app_name = 'name'
urlpatterns = [
    path('', views.name_view, name='name-view'),
]
表单/名称\u form.py

from django.forms import ModelForm, TextInput


from name.models import Name


class NameForm(ModelForm):

    class Meta:
        model = Name
视图/名称\u 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'
/myproject/name/views/name_view.py”,第4行,在
从name.forms导入NameForm
ImportError:无法导入名称“NameForm”
如果没有
模型
,就无法生成
ModelForm
,我运行了
python3 manage.py migrate
,得到了相同的错误


我创建了一个项目来隔离这个问题。如果没有文件夹,它就可以工作,除非我试图让它工作时弄乱了我的原始代码。

只要为您的视图创建一个文件夹,为您的表单创建一个文件夹,然后在每个文件夹中放置一个空的
\uu init\uuuuuuuuuuuuuupy
文件。
\uuuuuuuuuuuuuuuuuuu.py
file是告诉python将文件夹视为一个模块。然后将您的
views.py
文件和
forms.py
文件放在各自的目录中,现在您可以做

from myproject.path.to.views import MyView
from myproject.path.to.forms import MyForm

…就好像它是任何其他模块一样。就是这样。

你可以把它们放在你喜欢的任何地方。我尝试过这样做,我认为它一开始起作用,但实际上不起作用。如果有view.py和forms.py文件,它就起作用了。但是当我创建了一个文件夹“views”,文件名为“name\u view.py”,它会给我一个属性错误,并且找不到视图。
fromyproject.path.to.name_view import MyView
?模块本身与文件同名。我必须添加from.name_form import NameForm,并为init.py文件中的等效视图添加相同的名称
from myproject.path.to.views import MyView
from myproject.path.to.forms import MyForm