2010-02-17 27 views
6

Tôi đang cố gắng tạo thanh tiến trình tải lên django trong quản trị django. Ứng dụng chỉ là một phần nhỏ của dự án, do đó tôi không muốn đặt trình xử lý tải lên tùy chỉnh trong settings.py.Cách đặt django upload_handler trong quản trị viên?

Trình tải lên có thể được đặt bằng request.upload_handlers.insert(0, UploadProgressHandler(request)) nhưng không được đặt trong chế độ xem_xem của lớp quản trị django. Câu trả lời là ngoại lệ này:

Nếu bạn cố gắng sửa đổi request.upload_handlers sau khi đọc từ request.POST hoặc request.FILES Django sẽ ném một lỗi.

Tôi cũng đã thử làm điều này với trang trí trên add_view nhưng sau đó tôi không biết cách truy cập request.upload_handlers.

Ai đó có thể giúp tôi không?

Trả lời

1

Có một cái nhìn tại nguồn cho trang trí mà đi kèm với ứng dụng quản trị:

def staff_member_required(view_func): 
    """ 
    Decorator for views that checks that the user is logged in and is a staff 
    member, displaying the login page if necessary. 
    """ 
    @wraps(view_func) 
    def _checklogin(request, *args, **kwargs): 
     if request.user.is_active and request.user.is_staff: 
      # The user is valid. Continue to the admin page. 
      return view_func(request, *args, **kwargs) 

Các trang trí 'kết thúc tốt đẹp' quan điểm ban đầu, do đó bạn có thể kiểm tra arg yêu cầu trước khi gọi các quan điểm func gốc với nó.

+0

Để tham khảo nhanh, đây là mô-đun được đề cập: https://github.com/django/django/blob/1.4.10/django/contrib/admin/views/decorators.py –

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