Не очень уверен, что даже это можно сделать стандартным способом, но даже учитывая, что да, подумайте о UI . Видеть современные папки и файлы в одном месте, но иметь возможность выбирать только папки , не кажется мне хорошим пользовательским интерфейсом. ИМХО, это лучше и более «естественный» способ, чтобы один элемент управления был заполнен папками, а другой ( явно readonly ) заполнен только файлами, которые необходимо загрузить.
Надеюсь, это поможет.
Преобразование обсуждения из комментариев здесь:
В общем, вы хотите использовать представленные Django виды батарей, перед тем как развернуть свои собственные, и даже перед тем, как свернуть свои собственные с самого начала, вы бы хочу наследовать и расширять представления Django, такие как LoginView .
Тот же принцип применим к (хорошо спроектированным) внешним библиотекам, таким как связанные django-two-factor-auth
.
Вначале вы просто используете представленные в нем представления, вероятно, непосредственно include()
с помощью модуля urls
.
Затем, если вам нужно что-то настроить в этих представлениях, вы наследуете от этого представления, например,
from two_factor.views import LoginView
class MyLoginView(LoginView):
template_name = 'super_fancy_login_template.html'
form_list = (
('auth', MyAwesomeAuthenticationForm),
# ... the rest from the original here ...
)
и подключите его в urls
перед представлением библиотеки по тому же пути:
from django.conf.urls import url
from my_awesome_app.views import MyLoginView
urlpatterns = [
url(
regex=r'^account/login/ и эй presto, вы заменили смотреть со своим.
Очевидно, что чем больше вы заменяете подобные детали, тем меньше у вас появляется «гарантия» (а не на то, что на ПО с открытым исходным кодом вообще предоставляется гарантия;)), что все по-прежнему работает так, как должно.
,
view=MyLoginView.as_view(),
name='login',
),
include(...),
]
и эй presto, вы заменили смотреть со своим.
Очевидно, что чем больше вы заменяете подобные детали, тем меньше у вас появляется «гарантия» (а не на то, что на ПО с открытым исходным кодом вообще предоставляется гарантия;)), что все по-прежнему работает так, как должно.