那麼,我是新的使用Python和Django然後,我想知道我可以在視圖中調用幾個函數,例如我正在做一個應用程序,其中人們購買服務器,也recive通知,然後我想調用的功能,所有這一切都沒有問題,我做登錄工作,但註冊不,和通知工程,當我禁用表單調用進行註冊,因爲我希望所有這些東西在同一頁面,例如稱這種現象的layout.html,就像基地,現在看起來我的看法如何調用幾個函數在一個公正的視圖
Views.py
def index(request):
if request.method == 'POST':
form = RegistroUserForm(request.POST, request.FILES)
else:
form = RegistroUserForm()
context = {
'form': form
}
notifi = Notificaciones.objects.all()
return render(request,'app/index.html',context)
def registro_usuario_view(request):
if request.method == 'POST':
# Si el method es post, obtenemos los datos del formulario
form = RegistroUserForm(request.POST, request.FILES)
# Comprobamos si el formulario es valido
if form.is_valid():
# En caso de ser valido, obtenemos los datos del formulario.
# form.cleaned_data obtiene los datos limpios y los pone en un
# diccionario con pares clave/valor, donde clave es el nombre del campo
# del formulario y el valor es el valor si existe.
cleaned_data = form.cleaned_data
username = cleaned_data.get('username')
password = cleaned_data.get('password')
email = cleaned_data.get('email')
# E instanciamos un objeto User, con el username y password
user_model = User.objects.create_user(username=username, password=password)
# Añadimos el email
user_model.email = email
# Y guardamos el objeto, esto guardara los datos en la db.
user_model.save()
# Ahora, creamos un objeto UserProfile, aunque no haya incluido
# una imagen, ya quedara la referencia creada en la db.
user_profile = UserProfile()
# Al campo user le asignamos el objeto user_model
user_profile.user = user_model
# Por ultimo, guardamos tambien el objeto UserProfile
user_profile.save()
else:
# Si el mthod es GET, instanciamos un objeto RegistroUserForm vacio
form = RegistroUserForm()
# Creamos el contexto
context = {'form': form}
# Y mostramos los datos
return render(request, 'app/registro.html', context)
然後在我的layout.html,包括我registro.html和notificaciones.html,但在視圖中只能調用registro或notificaciones,我想知道我是怎樣包括兩者工程。
你的問題不明確。視圖函數可以調用任意數量的其他函數,但絕對沒有限制。你有沒有機會談論渲染模板?那麼現在你知道這個詞了,你能不能更新這個問題 – e4c5