2016-10-26 5 views
0

だから私は、私はこのようなUSER_PROFILEを編集することができますテンプレートをリンクしようとしています:編集ページをdjangoの詳細プロフィールページにリンクするにはどうしたらいいですか?

編集

しかし、私は、このエラーを与えている:

NoReverseMatchをUSER_PROFILE/9/ リバース/時」のために'user_profile_update'引数 '()'とキーワード引数 '{u'id': ''} 'が見つかりません。 1つのパターンが試されました:[u'user_profile /(?P \ d +)/ edit/$ ']

このようなテンプレートには、エラーなしでアクセスできます:/ user_profile /(id)/ edit

これが私の見解です:

def user_profile_update(request, id=None): 
    instance = get_object_or_404(user_profile, id=id) 
    form = user_profileForm(request.POST or None, request.FILES or None, instance=instance) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
     return HttpResponseRedirect(instance.get_absolute_url()) 
    context = { 
     "first_name": instance.first_name, 
     "instance": instance, 
     "form":form, 
     } 
return render(request, "user_profile/user_profile_form.html", context) 

これは私のURLです:

url(r'^create/$', user_profile_create,name='create'), 
url(r'^(?P<id>\d+)/$', user_profile_detail, name='detail'), 
url(r'^(?P<id>\d+)/edit/$',user_profile_update, name='edit'), 
url(r'^(?P<id>\d+)/delete/$', user_profile_delete), 

そして、これは私のモデルである:

class user_profile(models.Model): 

    first_name = models.CharField(null=True,max_length=100) 
    last_name = models.CharField(null=True,max_length=100) 
    address_1 = models.CharField(_("Address"), max_length=128) 
    address_2 = models.CharField(_("Address 1"), max_length=128, blank=True) 
    city = models.CharField(_("City"), max_length=64, default="pune") 
    country_name = models.CharField(max_length=60) 
    pin_code = models.CharField(_("pin_code"), max_length=6, default="411028") 
    updated = models.DateTimeField(auto_now=True, auto_now_add=False) 
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True) 

    def __unicode__(self): 
     return self.first_name 

    def __str__(self): 
     return self.first_name 

    def get_absolute_url(self): 
     return reverse("user_profile:detail", kwargs={"id": self.id}) 

    class Meta: 
     ordering = ["-timestamp", "-updated"] 

誰かが私を助けることができたら本当にうれしいよ!

+0

このエラー:NoReverseMatch at *********** 'user_profile_update'の引数 '()'とキーワードの引数 '{u'id': ''} 'が見つかりません。 1パターンを試しました:[u'user_profile /(?P \ d +)/ edit/$ '] 平均: -Djangoは{%url'を使用するとすべてのリンクが存在する場合にtemplate chekを読み込むために/url.html 'somepram%} - djangoがサーバーにhtmlを作成すると、次のようにparams:' {u'id ':' '}': のように/ user_profile /(id)/ editにアクセスしようとします。あなたはアクセスしようとします:/ user_profile/{u'id ':' '} /編集 正しいIDをHTMLに渡していることを確認してください – Zartch

答えて

1

編集ビューと詳細ビューでは、別々のビューとURL-confが必要です。 URL-confには^user_profile/(?P\d+)/edit/$'しかないので、user_profile/123/edit/からの表示にしかアクセスできません。したがって、別のURL '^user_profile/(?P\d+)/$を追加してuser_profile/123/からアクセスする必要があります。
ビューと同じですが、最も簡単な解決方法は2つのビューが必要です。

関連する問題