Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与#x27相反;邀请';带参数';(';tk测试';,)';和关键字参数';{}';没有找到。已尝试0个模式:[]_Python_Django_Django Models_Django Forms_Django Views - Fatal编程技术网

Python 与#x27相反;邀请';带参数';(';tk测试';,)';和关键字参数';{}';没有找到。已尝试0个模式:[]

Python 与#x27相反;邀请';带参数';(';tk测试';,)';和关键字参数';{}';没有找到。已尝试0个模式:[],python,django,django-models,django-forms,django-views,Python,Django,Django Models,Django Forms,Django Views,我有一个invite_用户视图,如下所示: class invite_user(View): template_name = "invites/invite.html" def get(self, request, *args, **kwargs): form = InviteForm() return render(request, self.template_name, {'form': form}) def post(sel

我有一个invite_用户视图,如下所示:

class invite_user(View):

    template_name = "invites/invite.html"


    def get(self, request, *args, **kwargs):
        form = InviteForm()
        return render(request, self.template_name, {'form': form})


    def post(self, request, *args, **kwargs):
        form = InviteForm(request.POST)
        if form.is_valid():
            user = User.objects.create_user(form.cleaned_data['first_name'], form.cleaned_data['email'], '**')
            user.first_name=form.cleaned_data['first_name']
            user.last_name = form.cleaned_data['last_name']
            user.is_active = False
            user.save()
            #now make invite
            invite = Invite.objects.create(user=user, cookie='ck-test', token='tk-test')
            send_mail('Subject', 'Link: http://somesite.com%s' % invite.get_absolute_url(), [user.email])
            return redirect(reverse('home_page'))
        else:
            form = InviteForm()
            return render(request, self.template_name, {'form': form})
运行时,django告诉我它找不到参数为“tk test”的invite对象。我在这里有点困惑,因为我显然是在用token='tk-test'创建一个Invite实例。我可能会对get_absolute_url的用途感到困惑

模型如下:

class Invite(models.Model):
    user = models.OneToOneField(User)
    cookie = models.SlugField()
    token = models.SlugField()

    def __unicode__(self):
        return u"%s's invite" % (self.user)

    def get_absolute_url(self):
        return (reverse('invite', args=[self.token]))
我也可以提供一些正在使用的中间件,但除非有人要求,否则在这里这似乎无关紧要。有人能解释一下这是怎么回事吗

应要求,我的主要URLConf:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
from project.apps.blog.views import home, about
from project.apps.suggest.views import suggest, thankyou
from django.core.urlresolvers import reverse
from project.userprofile.views import Login, Logout, Signup
from porject.apps.invites.views import invite_user
#used for serving static locally
from django.conf import settings



urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),

    #blog app
    url(r'^$', home.as_view(), name="home_page"),
    url(r'^about/$', about.as_view(), name='about_page'),

    #suggest app
    url(r'^suggest/$', suggest.as_view(), name='suggest_page'),
    url(r'^thankyou/$', thankyou.as_view(), name='thank_you_page'),

    #userprofile
    url(r'^login/$', Login.as_view(), name='login_page'),
    url(r'^logout/$', Logout.as_view(), name='logout_page'),
    url(r'^signup/$', Signup.as_view(), name='signup_page'),

    #invite app
    url(r'^request-invite/$', invite_user.as_view(), name="invite_user_page"),



)

您在
invite
型号的
get_absolute\u URL
中使用名为
invite
的URL时,缺少一个条目。如果已为该模型定义了视图,则应添加URL条目。如果此模型没有任何视图,则不需要定义
get\u absolute\u url
。至于
get_absolute\u url
究竟是什么内容,你有没有在main conf url.py中包含你的应用程序url.py?是的,它直接在我的main URLconf中,比如
url(r'^request invite/$',invite\u user.As_view(),name=“invite\u user\u page”),
你能发布你的
url.py
代码吗?你很可能错过了
arg
,请发布你的主
URLconf
,看起来你没有url名称
invite
的条目,是吗?我已经在作品中发布了我的主URLconf。哦,上帝,感谢你指出这一点。我完全忘记了。谢谢你的链接。