Tôi mới dùng Django và đang cố gắng đưa biểu mẫu tệp tải lên vào thẻ bao gồm. Vì vậy, tôi có thể sử dụng nó trong các mẫu khác nhau.Yêu cầu xử lý trong thẻ django inclusion template
Tôi đã tạo ra thẻ bao gồm như sau:
#upload_files.py @register.inclusion_tag('upload_form.html') def upload_handler(context): request = context['request'] view_url = reverse('upload.views.upload_handler') if request.method == 'POST': form = UploadForm(request.POST, request.FILES) if form.is_valid(): form.save() return HttpResponseRedirect(view_url) upload_url, upload_data = prepare_upload(request, view_url) form = UploadForm() upload_model_list = UploadModel.objects.all().order_by('-pub_date')
tôi muốn bây giờ bao gồm này trong mẫu, do đó trên trang Tôi có:
#mypage.html {% extends 'base.html' %} {% load upload_files %} {% upload_handler %}
tôi nhận được lỗi sau:
upload_handler takes 1 arguments
Tôi nên chuyển đối số nào từ mẫu?
Tôi đang gặp vấn đề đó !! Tôi sử dụng thẻ mẫu ở mọi nơi trên trang web của mình vì thẻ chứa mẫu đăng nhập. Sau khi đăng nhập, tôi cố gắng chuyển một tham số để sửa đổi một cái gì đó trong thẻ mẫu, (thông qua request.POST) nhưng khi tải lại templatetag đăng nhập lại, request.method = GET !!! vì vậy tôi không thể tìm thấy tham số tha. Làm thế nào tôi có thể tìm thấy thông số đó? – juankysmith
Vâng, phương thức sẽ là 'GET' một lần nữa vì chế độ xem đăng nhập có thể thực hiện chuyển hướng sau khi biểu mẫu được gửi, vì vậy bạn không thể truy cập dữ liệu yêu cầu của mình ở đó ... –
Chính xác, chế độ xem đăng nhập kết thúc bằng chuyển hướng .. . – juankysmith