我成功擴展了一些管理模型和表單,但我不確定如何保持我的文件樹清潔。何處放置自定義管理相關的表單?
如果我把forms.py
在同一水平admin.py
,一切都完美地工作:
forms.py
class MyUserCreationForm(UserCreationForm):
#...
class MyUserChangeForm(UserChangeForm):
#...
admin.py
from myapp.forms import MyUserCreationForm, MyUserChangeForm
文件樹
mypackage/
admin.py
forms.py
現在,爲了有我的管理有關的各種形式,從其他形式的分離,使代碼更清潔,我添加的文件夾admin
把我的管理有關的各種形式。在這種情況下,URL似乎被搞砸了。去/ myapp/admin /時,我得到了默認的管理頁面,而不是我在admin.py中自定義的頁面。
管理/ forms.py
class MyUserCreationForm(UserCreationForm):
#...
class MyUserChangeForm(UserChangeForm):
#...
admin.py
from myapp.admin.forms import MyUserCreationForm, MyUserChangeForm
文件樹
mypackage/
admin.py
admin/
forms.py
我猜系統很混亂,因爲admin既是文件又是文件夾。在Django中保留自定義管理相關文件的標準方法是什麼?
EDIT:在上面所示的情況下,存在admin.py
和文件夾admin
之間的衝突。我試圖把admin.py
和forms.py
文件夾中,但它仍然不能正常工作:
管理/ forms.py
class MyUserCreationForm(UserCreationForm):
#...
class MyUserChangeForm(UserChangeForm):
#...
管理/ admin.py
from myapp.admin.forms import MyUserCreationForm, MyUserChangeForm
class MyUserAdmin(UserAdmin):
form = MyUserChangeForm
add_form = MyUserCreationForm
list_filter =()
fieldsets = (
(None, {'fields': ('username', 'number', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff',)}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'number', 'password1', 'password2')}
),
)
admin.site.register(MyUser, MyUserAdmin)
文件樹
mypackage/
admin/
forms.py
admin.py
urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
)
您是否收到錯誤訊息?如果是這樣,那是什麼? –
網址似乎搞砸了。當去'/myapp/admin /'我得到默認的管理頁面,而不是我在'admin.py'中定製的頁面。 –
jul