Tôi cần giao diện Quản trị Django để chấp nhận tải lên của quản trị viên tệp Excel nơi dữ liệu trong mỗi tệp Excel được chèn vào mô hình cơ sở dữ liệu của tôi. Làm thế nào tôi có thể thực hiện như một nút "Upload" xuất hiện trên một trang quản trị mô hình Django, nơi nhấn vào nút yêu cầu người quản trị để chọn một tập tin .xls
, có dữ liệu sau đó được thêm vào cơ sở dữ liệu sau khi tải lên của nó hoàn tất?Nhập dữ liệu excel vào mô hình qua django admin
Trả lời
Tôi không chắc chắn về phía Django của sự vật, nhưng bạn có thể sử dụng xlrd để đọc và thao tác các tệp Excel. Có một bản PDF miễn phí giải thích điều này được gọi là Working with Excel files in Python
Tôi đã làm điều này, nhưng tôi chỉ thiết lập chế độ xem đơn giản với tệp tải lên (thực sự điều này có ý nghĩa hơn là thêm trực tiếp vào trang quản trị Django. page = một thể hiện mô hình, và tôi giả định rằng excel của bạn chứa nhiều mô hình).
trong forms.py, một hình thức đơn giản với một lĩnh vực tập tin tải lên
class ImportExcelForm(forms.Form):
file = forms.FileField(label= "Choose excel to upload")
trong views.py, một cái nhìn để xử lý tải lên
def test_flowcell(request):
c = RequestContext(request, {'other_context':'details here'})
if request.method == 'POST': # If the form has been submitted...
form = ImportExcelForm(request.POST, request.FILES) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
excel_parser= ExcelParser()
success, log = excel_parser.read_excel(request.FILES['file'])
if success:
return redirect(reverse('admin:index') + "pages/flowcell_good/") ## redirects to aliquot page ordered by the most recent
else:
errors = '* Problem with flowcell * <br><br>log details below:<br>' + "<br>".join(log)
c['errors'] = mark_safe(errors)
else:
c['errors'] = form.errors
else:
form = ImportExcelForm() # An unbound form
c['form'] = form
return render_to_response('sequencing/file_upload.html')
và như đề xuất trong bài sử dụng khác xlrd để đọc dữ liệu từ tệp excel. Tôi có một ExcelParser.py tập tin riêng biệt cho điều này
import xlrd
class ExcelParser(object, excel_name):
@transaction.commit_on_success
def read_excel(self):
wb = xlrd.open_workbook(excel_name)
...
do your parsing in here.....
...
(Tôi có thể thêm, mà nổi trội là một cách dễ khủng khiếp, và lỗi nhập dữ liệu. Tôi làm rất nhiều của nó tại nơi làm việc của tôi, và đang cố gắng để thuyết phục quản lý rằng có các giải pháp tốt hơn nhiều.)
django-import-export có thể hữu ích.
Nó tạo hai nút "nhập" và "xuất" cho đối tượng quản trị và cho phép chọn nhiều loại tiện ích mở rộng, bao gồm xls. Nó cũng cho thấy dữ liệu được nhập khẩu và yêu cầu được xác nhận trước khi thực hiện thực thi.
Bạn chỉ cần bao gồm nó trong INSTALLED_APPS và tạo tài nguyên xuất nhập khẩu của lớp bạn muốn tải lên và lớp con của ImportExportModelAdmin liên quan đến lớp tài nguyên được tạo trước để hiển thị các nút trong quản trị viên. Thông tin
hơn tại địa chỉ:
http://django-import-export.readthedocs.org/en/latest/getting_started.html https://github.com/bmihelac/django-import-export.
- 1. Mô hình nhóm trong django admin
- 2. làm thế nào để nhập dữ liệu csv vào các mô hình django
- 3. Nhập ngày châu Âu tại Django Admin
- 4. nhập để mô hình Django
- 5. Django admin thay đổi tên mô hình số nhiều
- 6. Không thể đăng nhập vào django admin sau khi tạo người dùng siêu với mô hình người dùng tùy chỉnh
- 7. Nhập dữ liệu CSV từ dịch vụ web vào Excel
- 8. ghi đè django admin change_list_results.html trên mỗi mô hình
- 9. Django: nhập người dùng xác thực vào mô hình
- 10. Nhập dữ liệu từ Excel trong PHP
- 11. Xuất dữ liệu MYSQL vào Excel/CSV qua php
- 12. Nhập dữ liệu từ Excel sang SQL Server không nhập được tất cả dữ liệu
- 13. Cấu hình trang web trong django-admin
- 14. Nhập dữ liệu vào Excel 2003 bằng một trang đăng nhập
- 15. Mô hình Django MVC cho các mô hình không được cơ sở dữ liệu điều khiển?
- 16. Nhập dữ liệu bảng tính Excel vào một bảng tính Excel khác có chứa VBA
- 17. Nhập dữ liệu json đã nhập vào khung dữ liệu
- 18. Lọc qua mô hình liên quan django
- 19. Nhân sư - Tài liệu mô hình Django
- 20. nhập csv dữ liệu vào cơ sở dữ liệu trong Django quản
- 21. Django Admin: Thêm TinyMCE vào TextField cụ thể chỉ?
- 22. Django Admin Thả xuống các lựa chọn
- 23. Mô hình Django: Chỉ cho phép một mục nhập trong một mô hình?
- 24. mô hình django = logic kinh doanh + truy cập dữ liệu? Hoặc lớp truy cập dữ liệu nên được tách ra khỏi mô hình django?
- 25. Django fix Admin số nhiều
- 26. Hacking Django Admin, móc để đăng nhập/đăng xuất
- 27. có một cơ sở dữ liệu riêng biệt cho django-admin trong django
- 28. django admin - quyền nhóm để chỉnh sửa hoặc xem mô hình
- 29. Lắp mô hình đa thức vào dữ liệu trong R
- 30. django 1.5 admin inline extra
Đây là một câu hỏi hay - điều mà một nhà phát triển khác mà tôi biết là cần thiết theo Django trước đây, và bản thân tôi cũng cần một trong những dự án của riêng tôi ngay bây giờ. Câu hỏi cần được mở lại để chúng tôi có thể chia sẻ cách tải lên Excel làm việc với Giao diện quản trị Django. –
Ồ - và, trong khi chờ đợi, có một câu hỏi tương tự mà mọi người có thể tham khảo, nhưng liên quan đến định dạng tệp '.csv' thay vì định dạng tệp Excel: http://stackoverflow.com/questions/3974620/ –