gpt4 book ai didi

django - 渲染时捕获NoReverseMatch:反向使用参数'accounts_profile_view''('和关键字参数',)'的'{}'

转载 作者:行者123 更新时间:2023-12-02 04:02:59 25 4
gpt4 key购买 nike

正如您所看到的,在渲染时,我有一个奇怪的Catch NoReverseMatch:找不到带有参数'(',)'和关键字参数'{}'的'accounts_profile_view'反向。

最奇怪的是,在django中使用shell_plus,导入用户配置文件,然后从django.urlcore.resolvers导入反向函数时,我这样做:

reverse('accounts_profile_views', args=[username])

而且效果很好!

我为你们创建了一堆要点,以帮助我对其进行审核,在这里。

这是模特
https://gist.github.com/140127f6303660baf8d9

这是我的意见文件
https://gist.github.com/1a3b9651eef3fb9d22db

这是我的模型网址
https://gist.github.com/66fe6b1f068739f940db

这是整个项目的URL
https://gist.github.com/edea781b1efca341230b

当然还有错误
https://gist.github.com/8b84bd0394d4b047dce8

感谢您的帮助社区!

======更新======

我发现了一些问题,在contact_us View 和模板上发生了一些奇怪的事情,当我转到contact-us页面时, header 上的request.user.username显示一个空的var。

这是我的contact_us网址,它是项目主要 View 的一部分:
from django.conf.urls.defaults import * 
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('apps.maincoke.views',
url(r'^(?i)$', 'home', name='home'),
url(r'^(?i)faqs/$', direct_to_template, {'template': 'maincoke/faqs.html'}, name="main_faqs"),
url(r'^(?i)contact-us/$','contact_us', name='contact_us'),
)

这是contact_us View :
@login_required
@render_to("maincoke/contact_us.html")
def contact_us(request):
mail_status = None

if request.method == 'POST':
contact_us_form = ContactUsForm(request, request.POST)
if contact_us_form.is_valid():
mail_status = contact_us_form.send_as_mail()
if mail_status:
contact_us_form = ContactUsForm(request)
else:
contact_us_form = ContactUsForm(request)
return { 'contact_us_form' : contact_us_form, 'mail_status' : mail_status }

这是表格,我使用django-uni-form
class ContactUsForm(forms.Form):
name = forms.CharField(label='Nombre', max_length=120, required=True)
email = forms.CharField(max_length=200, required=True)
message = forms.CharField(label='Mensaje', widget=forms.Textarea(attrs={'cols':'40'}),
required=True)

MAX_MESSAGE_LENGTH = 2000
# uniForm Helper
helper = FormHelper()
helper.form_id = "contact_us_form"
layout = Layout(
Fieldset('',
'name', 'email', 'message'
)
)
helper.add_layout(layout)

# Submit button(s)
submit = Submit('submit','Enviar')
helper.add_input(submit)


class Meta:
fields = ['name', 'email', 'message']

def __init__(self, request, *args, **kw):
super(ContactUsForm, self).__init__(*args, **kw)
self.request = request

def clean_message(self):
message_data = self.cleaned_data['message']
if len(message_data) > self.MAX_MESSAGE_LENGTH:
raise forms.ValidationError("Mensaje demasiado largo")

def send_as_mail(self):
data = self.cleaned_data
send_status=True
mail_content_html = render_to_string('mails/contactmail.html', {'data':data})
mail_content_text = strip_tags(mail_content_html)
mail = EmailMultiAlternatives("Mensaje enviado de %s" % data['name'],
mail_content_text,
settings.DEFAULT_FROM_EMAIL,
settings.CONTACT_MAIL_RECIPIENT
)
mail.attach_alternative(mail_content_html, "text/html")
try:
mail.send(fail_silently=False)
except:
send_status=False

return send_status

模板的信息根本无法渲染!

最佳答案

该错误向您显示出了什么问题:username参数正在评估为空字符串。您需要找出原因。

关于django - 渲染时捕获NoReverseMatch:反向使用参数'accounts_profile_view''('和关键字参数',)'的'{}',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com