Я новичок в django. Я хочу управлять своей базой данных с помощью пользовательских методов внутри файла представлений. например, у меня есть этот код, который я хотел бы запустить с javascript - я написал этот код:
Js:
$.ajax({
type: 'POST',
url: '/ClassManager/',
data: {
data: data,
csrfmiddlewaretoken: csrftoken,
},
success: function() {
alert("IT WORKED")
},
error: function() {
alert('error');
}
})
views.py
def expfunc():
if request.method == 'POST':
user = User.objects.get(pk=1)
addlst = List(content = "list content", creator = user)
addlst.save()
urls.py
urlpatterns = [
path('ClassManager/', views.expfunc),
]
Теперь проблема заключается в том, что для каждой новой функции, которую я хочу создать в views.py, мне нужно добавить еще одну строку в urls.py.
мой вопрос - есть ли способ создать класс со всеми пользовательскими методами и получить к ним доступ с одним URL и разными данные?
например:
Js:
$.ajax({
type: 'POST',
url: '/ClassManager/functionone()',
data: {
data: data
csrfmiddlewaretoken: csrftoken,
},
success: function() {
alert("IT WORKED")
},
error: function() {
alert('error');
}
})
views.py
class DatabaseManager():
def functionone(): # add new list
if request.method == 'POST':
user = User.objects.get(pk=1)
addlst = List(content = "list content", creator = user)
addlst.save()
def functwo(): # update username
if request.method == 'POST':
user = User.objects.get(pk=1)
user.id = 9
user.save()
def functhree(): # update list content
if request.method == 'POST':
user = User.objects.get(pk=1)
mylist = List.objects.get(pk=1)
mylist.content = "updated list content"
mylist.save()
urls.py
urlpatterns = [
path('ClassManager/functionone()', views.DatabaseManager.functionone),
]
Я пришел из asp. net фона, где я писал классы с функциями, которые выполняли запросы, и именно так я управлял своей базой данных, поэтому я могу сделать то же самое здесь?
Заранее спасибо!