未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向
Posted
技术标签:
【中文标题】未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向【英文标题】:Reverse for 'send_referral_code' with arguments '()' and keyword arguments '' not found未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向 【发布时间】:2014-05-29 07:41:50 【问题描述】:我在我的一个 web 应用程序中使用 django,我也在使用 userena。在 userena 配置文件模板(profile_detail.html)中,我添加了一个锚标记,例如..
<a href = % url 'send_referral_code'%>Click here</a>
现在 send_referral_code 是在 urls.py 中声明的名称值,urls.py 是..
from django.conf.urls import patterns, url, include
from django.conf import settings
from mail import views
urlpatterns = patterns('',
url(r'^$', views.send_referral_code,name='send_referral_code'),
)
views.py 是...
from accounts.models import MyProfile
from django.core.mail import send_mail
def send_referral_code(request):
referral_code = MyProfile.objects.get(user = request.user)
send_mail('referral_code','This is Your Referral Code','you@email',['user@example.com'],fail_silently = False)
值得一提的是,views.py 和 urls.py 都驻留在另一个应用程序,即“邮件”
这是我的主要 urls.py ..
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
import photo
urlpatterns = patterns('',
# Examples:
#url(r'^$', 'auth.views.home', name='home'),
# url(r'^shutterstock/', include('shutterstock.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^accounts/', include('userena.urls')),
url(r'^user_upload/',include('myprofile.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^showphoto/',include('photo.urls')),
url(r'^mailing/',include('mail.urls')),
)
from django.conf import settings
if settings.DEBUG:
urlpatterns += patterns(
'django.views.static',
(r'media/(?P<path>.*)',
'serve',
'document_root': settings.MEDIA_ROOT),
(r'^something/hard/to/guess/', include('paypal.standard.ipn.urls')), )
现在我收到一个错误,即 Reverse for 'send_referral_code' with arguments '()' and keyword arguments '' not found 当我试图执行我的网站并指示该行时
<a href = % url 'send_referral_code'%>Click</a>
在我的 userena 应用程序的 profile_detail.html 文件中。现在我该如何解决这个问题或实际问题是什么?
【问题讨论】:
这对您有帮助吗? ***.com/posts/comments/35235658?noredirect=1 【参考方案1】:我自己找到了答案,出现问题是因为,我把变量值作为send_mail函数参数的第一个参数,即
send_mail('referral_code','This is Your Referral Code','you@email', ['user@example.com'],fail_silently = False)
我就这样改了...
send_mail('Referral Code','This is Your Referral Code','you@email',['user@example.com'],fail_silently = False)
现在它运行良好,可能是错误 Reverse for 'send_referral_code' with arguments '()' and keyword arguments '' not found 正在显示,因为我已经放置了变量而不是简单主题。由于我已将变量放在主题的位置,这就是它矛盾的原因。
【讨论】:
【参考方案2】:它不起作用的原因是您的视图代码返回错误。所有视图方法都必须返回一个HttpResponse
对象。
Python 中任何没有返回语句的方法,都返回None
;并且由于您的视图方法中没有 return 语句,它返回 None
导致视图无法工作。
试试这个:
from django.shortcuts import redirect
def send_referral_code(request):
referral_code = MyProfile.objects.get(user = request.user)
send_mail('referral_code',
'This is Your Referral Code',
'you@email.com',
['user@example.com'],
fail_silently=False)
return redirect('/')
【讨论】:
以上是关于未找到带有参数“()”和关键字参数“”的“send_referral_code”的反向的主要内容,如果未能解决你的问题,请参考以下文章
“未找到带有参数 '()' 和关键字参数 '' 的 '' 的反向操作。”
未找到带有参数“()”和关键字参数“”的“password_change_done”的反向