2014-10-28 75 views
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) 
+0

什麼網址,會出現這種情況對於刪除最後一個逗號?這只是一個嗎? – schillingt 2014-10-28 12:58:13

+1

是什麼讓你認爲問題與.pyc或urls.py有關?你可以粘貼'/admin/options.py代碼,在第1016行左右' – 2014-10-28 12:58:16

+0

你有一個元組缺少逗號。在你的代碼中某處你有類似'('''''''''','''')或''''''''然而,如果不查看你的'admin.py'這個應用程序,它很難確定。 – 2014-10-28 13:09:51

回答

0

我知道這是一個yearago問題,但以供將來參考,
url(r'^admin/', include(admin.site.urls),)