2012-02-09 12 views
3

私は奇妙なことがわかるように、レンダリング中には奇妙なCaught NoReverseMatchがあります。引数 '(' '、)'およびキーワード引数 '{}'を持つaccounts_profile_viewは見つかりませんでした。レンダリング中にNoReverseMatchが発生しました:引数 '(' '、)'およびキーワード引数 '{}'が見つからない場合は、 'accounts_profile_view'を反転してください。

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

をし、それだけで正常に動作します:その後、django.urlcore.resolversから逆の機能をインポートし、ユーザープロファイルをインポートすると、Djangoでshell_plusを使用した場合

奇妙な事は、私がこれを行うです!

私は彼らのレビューを手助けするために、皆さんのためにたくさんの要点を作成しました。

この

は、これは私の見解は、これは私のモデルのURL https://gist.github.com/66fe6b1f068739f940db

であり、これはプロジェクト全体のURLであるhttps://gist.github.com/1a3b9651eef3fb9d22db

ファイルであるモデル https://gist.github.com/140127f6303660baf8d9

ある https://gist.github.com/edea781b1efca341230b

ともちろん、エラー https://gist.github.com/8b84bd0394d4b047dce8

あなたのヘルプコミュニティに感謝します!

====== ====== UPDATE

私はからrequest.user接触-たちのページに行くと、contact_usビューとテンプレートに起こって奇妙な何かをtheresの、何かを発見ヘッダーの.usernameには空のvarが表示されます。

相続人はプロジェクトのメインビューの一部である私のcontact_usのURL:

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 } 

と、これはフォームで、イムジャンゴ-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 

テンプレートの情報がまったくレンダリングされません。

答えて

1

エラーは何が間違っているかを示しています。username引数は空の文字列に評価されています。あなたはこれがなぜであるかを理解する必要があります。

0
from django.conf.urls.defaults import * 

urlpatterns = patterns('apps.accounts.views', 
url(r'^(?P<username>\w+)/$', 'profile_view', {}, name="accounts_profile_view"), 
url(r'^(?P<username>\w+)/edit/$', 'profile_edit', {}, name="accounts_profile_edit"), 
) 

データは、ここで示される場合にそれが起こる:r'^(?P username \w+)はDEF逆に、与えられたデータと一致しません:([ユーザ名] =引数、 'accounts_profile_views')逆

\w Match a word character (alphanumeric plus "_") 

デバッグビューPyMASTER @Daniel Rosemanが言っているように、スペースやドット、空の文字列が含まれている場合、このユーザ名で何が表示されているかを見てください...これは一致しませんが、この例外が発生します。

関連する問題