9

Có thể loại bỏ pk khỏi url liên quan đến UpdateView?Django UpdateView không có pk trong url

Ví dụ, nếu tôi có

url(r'^myobj/update/(?P<pk>\d+)/$', views.UpdateMyObj.as_view(), name="update") 

là có cách nào để viết nó như

url(r'^myobj/update/$', views.UpdateMyObj.as_view(), name="update") 

và sau đó gửi pk như một tham số trong POST hoặc GET yêu cầu?

+1

Để có lựa chọn ngắn hơn để câu trả lời này xem bài đăng này: http://stackoverflow.com/questions/6181041/updating-user- model-in-django-with-class-updateview – Staccato

Trả lời

25

Có nó là có thể bạn chỉ cần ghi đè lên get_object phương pháp:

from django.views.generic.edit import UpdateView 

class UpdateMyObj(UpdateView): 
    # ..... 

    def get_object(self): 
     return MyModel.objects.get(pk=self.request.GET.get('pk')) # or request.POST 
+0

Bạn có một Liên kết với việc triển khai không? Cảm ơn –

+1

Bạn nên sử dụng get_object_or_404 để lấy đối tượng –

+0

Thực tiễn tốt nhất là không sử dụng 'request.GET' để cập nhật trên máy chủ. Tốt nhất là luôn sử dụng 'request.POST' để thay thế. – Semmel

Các vấn đề liên quan