0
我們在django 1.6.4中做了一個升級到Django 1.7的應用程序,我使用nginx和gunicorn來爲應用程序提供服務。django中生成的urls.pyc文件存在問題,如何解決?
隨機應用程序返回以下錯誤:
TypeError at /admin/ihs_booking/occupancydiscount/add/
'tuple' object is not callable
Request Method: POST
Request URL: http://localhost/admin/ihs_booking/occupancydiscount/add/
Django Version: 1.7
Exception Type: TypeError
Exception Value: 'tuple' object is not callable
Exception Location: /usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py in message_user, line 1016
Python Executable: /usr/bin/python
Python Version: 2.7.6
我們試圖改變apache的嘗試,但仍是同樣的問題。
經過調查我們得出的結論是,問題發生在urls.pyc生成。
我們刪除pyc,重新啓動服務器(apache或nginx + gunicorn),它的工作原理。
過了一段時間後,問題再次出現。
這是urls.py的內容:
#-*- coding=utf-8 -*-
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.contrib import admin
from .views import home, search, book, confirm_payment, gestion, contact_ihs, test_calendar
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^blog/', include('blog.urls')),
url(r'^$', home, name='home'),
url(r'^calendar/$', test_calendar, name='test_calendar'),
url(r'^search/$', search, name='search'),
url(r'^gestion/$', gestion, name='gestion'),
url(r'^book/$', book, name='search'),
url(r'^confirm-payment/$', confirm_payment, name='confirm'),
url(r'^contact/', contact_ihs, name='contact'),
url(r'^admin/', include(admin.site.urls),)
)
#Defining the URLs to upload media files
if settings.DEBUG:
urlpatterns += patterns(
'django.views.static',
(r'media/(?P<path>.*)',
'serve',
{'document_root': settings.MEDIA_ROOT}),)
我們必須運行與應用程序的nginx + gunicorn因爲需要在同一臺服務器上運行Django和PHP。
有什麼想法? 謝謝!
這裏是圍繞1061行的admin/options.py。
def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
opts = self.model._meta
app_label = opts.app_label
preserved_filters = self.get_preserved_filters(request)
form_url = add_preserved_filters({'preserved_filters': preserved_filters, 'opts': opts}, form_url)
view_on_site_url = self.get_view_on_site_url(obj)
context.update({
'add': add,
'change': change,
'has_add_permission': self.has_add_permission(request),
'has_change_permission': self.has_change_permission(request, obj),
'has_delete_permission': self.has_delete_permission(request, obj),
'has_file_field': True, # FIXME - this should check if form or formsets have a FileField,
'has_absolute_url': view_on_site_url is not None,
'absolute_url': view_on_site_url,
'form_url': form_url,
'opts': opts,
'content_type_id': get_content_type_for_model(self.model).pk,
'save_as': self.save_as,
'save_on_top': self.save_on_top,
'to_field_var': TO_FIELD_VAR,
'is_popup_var': IS_POPUP_VAR,
'app_label': app_label,
})
我們在admin.py的list_display結尾處有一個「,」我們刪除了它,但仍然出現錯誤。
這是一類admin.py的:
class PromcodeDiscountAdmin(admin.ModelAdmin):
list_display = ('code', 'hotel', 'name', 'discount_percentage', 'start', 'end', 'is_active', 'promotional_group')
form = PromocodeAdminForm
admin.site.register(PromcodeDiscount, PromcodeDiscountAdmin)
什麼網址,會出現這種情況對於刪除最後一個逗號?這只是一個嗎? – schillingt 2014-10-28 12:58:13
是什麼讓你認爲問題與.pyc或urls.py有關?你可以粘貼'/admin/options.py代碼,在第1016行左右' – 2014-10-28 12:58:16
你有一個元組缺少逗號。在你的代碼中某處你有類似'('''''''''','''')或''''''''然而,如果不查看你的'admin.py'這個應用程序,它很難確定。 – 2014-10-28 13:09:51