我正在努力让django-profiles工作。
我按照this manual ("The Missing Manual"),
的步骤操作所以:
我在我的项目文件夹models.py中创建了包含:
from django.db import models
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
first_name = models.CharField(_('first name'), max_length=100)
middle_name = models.CharField(_('middle name'), blank=True, max_length=100)
last_name = models.CharField(_('last name'), max_length=100)
birth_date = models.DateField(_('birth date'), blank=True, null=True)
在我的项目的urls.py中,我添加了:
from myProjectName.forms import ProfileForm
('^profiles/edit', 'profiles.views.edit_profile',{'form_class':ProfileForm,'success_url':'/my/custom/url',}),
(r'^profiles/', include('profiles.urls')),
所以现在我项目的整个urls.py文件是:
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
from django.contrib import admin
from myProjectName.forms import ProfileForm
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', admin.site.urls),
(r'^accounts/', include('registration.urls')),
(r'^$', direct_to_template,
{ 'template': 'index.html' }, 'index'),
('^profiles/edit', 'profiles.views.edit_profile', {'form_class': ProfileForm,'success_url':'/my/custom/url',}),
(r'^profiles/', include('profiles.urls')),
)
当我现在访问http://127.0.0.1:8000/profiles/edit/时,我收到此错误:
Exception Value: No module named ourcrestmont.itaco.models
这是form.py中的导入...
我做错了什么?
修改
我的forms.py代码:
from django.db import models
from django.forms import ModelForm
from ourcrestmont.itaco.models import *
class ProfileForm(ModelForm):
class Meta:
model = Foo
exclude = ('field1','field2','field3',)
这与手册中的代码完全相同,或者这段代码不好? (任何人都可以提供其他更好的代码吗?)
答案 0 :(得分:1)
因此导入语句似乎试图导入名为“ourcrestmont / itaco / models.py”的文件。确保存在。
(通过django模型,看起来它是一个名为ourcrestmont的项目,名为itaco的应用程序)
如果存在,请确保itaco和ourcrestmont都包含 init .py文件。
你可以只有项目(在这种情况下导入行来自projectname.models导入模型名称)但我建议坚持标准布局并将模型,表单和视图放在一起在项目下的应用程序中,即使您当前只看到您的项目有一个应用程序。 (因为它没有,它至少有三个,因为注册和配置文件也 django应用程序,如果你看到我的意思,它们只是你所做的django应用程序,并且考虑到它可能会使依赖性和包含错误更容易解决。当然,每个其他django应用程序都会假设大多数东西都在应用程序内部。)