未找到带有参数“()”和关键字参数“”的“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”的反向

未找到带有参数“()”和关键字参数“”的“guestbook.posts”的反向操作。尝试了 0 种模式:[]

未找到带有参数“()”和关键字参数“'pk':6”的“post_edit”的反向。尝试了 0 种模式:[]