Как вы можете заметить, у меня возникла странная ошибка, пойманная 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
Это мои модели URL
https://gist.github.com/66fe6b1f068739f940db
и это весь URL проекта
https://gist.github.com/edea781b1efca341230b
и конечно же ошибка
https://gist.github.com/8b84bd0394d4b047dce8
Спасибо за помощь, сообщество!
====== ОБНОВЛЕНИЕ ======
Я кое-что выяснил, что-то странное происходит с представлением и шаблоном contact_us, когда я перехожу на страницу contact-us, а request.user.username в заголовке показывает пустую переменную.
Вот мой адрес contact_us, который является частью основных представлений проекта:
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:
@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-уни-форму
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
Информация шаблона вообще не отображается!