Tôi cũng mới sử dụng Django. Để làm những gì bạn muốn làm [chuyển các giá trị từ python sang js], tôi đã sử dụng các truy vấn ajax [sử dụng jquery] và sau đó thực hiện một JsonResponse cho lệnh gọi ajax. Cuộc gọi ajax sau đó xử lý dữ liệu theo yêu cầu
class InstructorDeleteView[DeleteView]:
model = Instructor
success_url = reverse_lazy['instructor_list']
template_name = 'class_management/instructor_list.html'def delete[self, request, *args, **kwargs]:
"""
Calls the delete[] method on the fetched object and then
responds to the call with the relevant data.
"""
self.object = self.get_object[]
pk = self.object.pk # Save the primary key before the object is deleted.
self.object.delete[]
data = {
'message': "Successfully deleted the instructor.",
'pk': pk,
}
return JsonResponse[data]
Sau đó, trong mẫu của bạn, bạn có thể thêm js và có lệnh gọi ajax đến chế độ xem ở trên để nó có thể nhận được JsonResponse
Trong bài viết trước chúng ta đã thấy cách định cấu hình cài đặt mẫu trong django. Trong bài viết này, chúng ta sẽ nói về việc chuyển dữ liệu động sang các mẫu để hiển thị dữ liệu đó. Như chúng ta đã biết django là một MVC framework. Vì vậy, chúng tôi tách logic kinh doanh khỏi logic trình bày. Chúng tôi viết logic nghiệp vụ trong dạng xem và chúng tôi chuyển dữ liệu tới các mẫu để trình bày dữ liệu. Dữ liệu mà chúng tôi chuyển từ chế độ xem sang mẫu thường được gọi là dữ liệu "bối cảnh". Hãy bắt đầu với một ví dụ
Chế độ xem Django, dữ liệu ngữ cảnh và mẫu
Hãy viết một chế độ xem đơn giản lấy thông tin người dùng như tên, họ và địa chỉ và hiển thị thông tin đó trong mẫu
lượt xem. py
from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
user_template. html
User Information
First Name:
{{first_name }}
Last Name:
{{last_name }}
Address:
{{address}}
"
from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
1" là chức năng được sử dụng nhiều nhất trong django. Nó kết hợp một mẫu nhất định với một từ điển ngữ cảnh nhất định và trả về một đối tượng có văn bản được hiển thị đó. Phải mất ba đối số "from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
2", "______13" và "from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
4" từ điển. Trong mẫu, chúng ta có thể truy cập các khóa chính tả ngữ cảnh dưới dạng tên**hoặc biến** và hiển thị chúng như "from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
5". Vậy là xong, mọi người chỉ cần thử đoạn mã trên và cho tôi biết nếu có bất kỳ nhận xét nào Tôi có ứng dụng Django chứa biểu mẫu mà người dùng có thể chọn "
from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
6" hoặc "from django.shortcuts import render
def user_data[request]:
context = {
"first_name": "Anjaneyulu",
"last_name": "Batta",
"address": "Hyderabad, India"
}
template_name="user_template.html"
return render[request, template_name, context]
7". Vì vậy, những gì tôi đang cố gắng thực hiện là khi người dùng cung cấp đầu vào thông qua radiobutton trong html và nhấp vào "Cập nhật", nó sẽ gửi các giá trị mới [class ChoiceModel[models.Model]:
choice1 = models.BooleanField[default=False]
choice2 = models.BooleanField[default=True]
def get[self]:
new_self = self.__class__.objects.get[auto=self.choice1]
self.__dict__.update[new_self.__dict__]
return reverse["core:choices", kwargs={"choice1": self.choice1}]
0 và class ChoiceModel[models.Model]:
choice1 = models.BooleanField[default=False]
choice2 = models.BooleanField[default=True]
def get[self]:
new_self = self.__class__.objects.get[auto=self.choice1]
self.__dict__.update[new_self.__dict__]
return reverse["core:choices", kwargs={"choice1": self.choice1}]
1 là các giá trị Boolean] cho chế độ xem của tôi và in Những gì tôi có là như sau
lựa chọnThực đơn. html
Choice1
Choice2
Update
kiểu mẫu. py
class ChoiceModel[models.Model]:
choice1 = models.BooleanField[default=False]
choice2 = models.BooleanField[default=True]
def get[self]:
new_self = self.__class__.objects.get[auto=self.choice1]
self.__dict__.update[new_self.__dict__]
return reverse["core:choices", kwargs={"choice1": self.choice1}]
lượt xem. py
class ChoiceMenu[generic.TemplateView]:
template_name = 'core/choiceMenu.html'
context_object_name = 'choicemenu'
current_model_set = ChoiceModel.objects.get[id=1]
choice1 = int[current_model_set.choice1 == True]
choice2 = int[current_model_set.choice2 == True]
class ChoiceSetting[generic.TemplateView]:
extra_context = {"choices_page": "active"}
context_object_name = 'choices'
template_name = 'core/choices/choiceindex.html'
def get[self, queryset=None, **kwargs]:
choice1 = self.kwargs.get["choice1"]
logger.info[choice1] ###