2011-10-17 26 views
11

Nếu tôi nhận xét các trình xử lý sử dụng djangoforms mọi thứ khác có vẻ hoạt động.Máy ứng dụng của Google, thời gian chạy Python 2.7, ImportError: không thể nhập tên djangoforms

Sau đây là app.yaml sửa đổi của tôi:

application: xxxxxxx 
version: 5 
#` -1+1 
# runtime: python 
runtime: python27 
api_version: 1 

inbound_services: 
- mail 

#` +3 
libraries: 
- name: django 
    version: "1.2" 

handlers: 
- url: /(.*\.(html|css|js|gif|jpg|png|ico)) 
    static_files: static/\1 
    upload: static/.* 
    expiration: "1d" 
    # expiration: "1m" 

- url: .* 
    script: main.py 

- url: /_ah/mail/.+ 
    script: lib/handler_mail.py 
    login: admin 

Sau đây là đoạn trích từ main.py mà tôi chỉnh sửa:

import os 
# dummy, enables django template filters to be registered 
os.environ[u'DJANGO_SETTINGS_MODULE'] = u'conf' 
#` -2 
# from google.appengine.dist import use_library 
# use_library('django', '1.2') 

from functools import wraps 
from appengine_utilities.cache import Cache 
from google.appengine.api import taskqueue 
from google.appengine.ext.db import djangoforms 
... 

Đây là dấu vết trở lại từ nhật ký của tôi: Traceback (cuộc gọi gần đây nhất): Tệp "/base/data/home/apps/s~cirrussecure1/5.354034990641807540/main.py", dòng 23, trong từ google.appengine.ext.db nhập djangoforms ImportError: không thể nhập tên djangoforms

Điều tôi đang làm sẽ không cho phép tôi nhập djangoforms nhưng không ảnh hưởng đến bất kỳ thứ gì khác. Tôi đã google nhưng không ai khác có vấn đề gì cả (chưa?). Cảm ơn.


@all Tìm thấy giải pháp giúp tôi tiếp tục sử dụng gae/python 2.7 nhưng tôi không thích hoặc cách google xử lý phần này của bản phát hành.

Tôi đã thử wtform và thực hiện một số tiến trình cố gắng làm cho nó hoạt động với gae/python 2.5 trước khi gọi đủ.

Sau đó, tôi đã nhận được djangoforms.py (từ http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/db/djangoforms.py), bỏ nó vào với các tệp của tôi và làm cho nó hoạt động với gae/python 2.7.

Tôi đã sử dụng app.yaml được hiển thị ở trên. Cũng phải thay đổi {{form_section}} thành {{form_section | safe}} trong hai tệp mẫu.

Tôi đoán Django đang không ưa chuộng nhóm gae. Tôi có thể hiểu nếu djangoforms không được chấp nhận trong một năm và sau đó giảm xuống. Tuy nhiên, bỏ nó với bất kỳ cảnh báo hoặc thậm chí bất kỳ đề cập trong tài liệu so sánh bản phát hành hiện tại với trước đó chỉ là không phải là một điều tốt đẹp để làm cho khách hàng của bạn.

@google Vui lòng cập nhật, tài liệu, bài viết, ví dụ, v.v. của bạn để những người khác không phải lãng phí một ngày như tôi đã làm.

+3

Bạn có thể thấy các lỗi này trong hộp cát của bạn không? Tôi chỉ thấy chúng trong sản xuất, nhưng hộp cát dev của tôi hoạt động tốt, điều này gây phiền toái cho việc gỡ lỗi. – dfrankow

+0

Tôi hiện đang chạy vào vấn đề này là tốt và tôi đang xem xét một trong hai bản vá trong django và các hình thức django hơn như xem trước vv bằng cách sử dụng www.allbuttonspressed.com hoặc như Nick Johnson nói chọn một khuôn khổ biểu mẫu cụ thể –

Trả lời

9

Mô-đun google.appengine.ext.db.djangoforms không được cung cấp với Python 2.7. Bạn có thể tự vá trong bản sao, nhưng ý tưởng tốt hơn là sửa đổi mã xử lý biểu mẫu của bạn để không dựa vào nó - nó không được hỗ trợ và thẳng thắn một chút về hack.

+1

Cảm ơn bạn đã xác nhận rằng Tôi đã suy nghĩ của cố gắng để vá nó trở lại in Tôi cố gắng sử dụng django.forms nhưng đã gặp vấn đề nhận ModelForm và Meta làm việc (https://docs.djangoproject.com/en/dev/topics/forms/modelforms/) . Một số ví dụ sẽ rất hữu ích. Việc tái hoạt động của điều này có thể là: http://code.google.com/appengine/articles/djangoforms.html? –

+1

@CirrusSecure Tôi đề nghị bạn nên tránh nó, và sử dụng các biểu mẫu riêng biệt và các khung công tác DB.Tích hợp chúng không phải là khó khăn, và modelforms đã luôn luôn có một số hạn chế và các vấn đề xung quanh đó. –

+1

@NickJohnson Chăm sóc để cung cấp bài viết chi tiết hơn hoặc viết về điều này? Tôi đang dùng app-engine-patch và tôi nghĩ nó sử dụng djangoforms. Những gì có liên quan trong việc nhận ra? – dfrankow

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