2016-01-15 1 views
1

У меня есть модель UserProfile, которую я хочу, чтобы люди обновлялись, если захотят.Мой просмотр обновления профиля пользователя (класс основан) возвращает 404

views.py

from django.views.generic.edit import CreateView, UpdateView 

class UserProfileUpdateView(UpdateView): 
    model = UserProfile 
    form_class = UserProfileForm 
    template_name = "preferences.html" 
    success_url = "/profile/" 

    def get_context_data(self, *args, **kwargs): 
     context = super(UserProfileUpdateView, self).get_context_data(*args, **kwargs) 
     return context 

urls.py

from profiles import views 
from profiles.views import UserProfileCreateView, UserProfileUpdateView 

urlpatterns = [url(r'^profile/(?P<pk>\d+)$/edit', UserProfileUpdateView.as_view(), name='update_profile'),] 

Теперь моя проблема в том, что, когда я пытаюсь идти к http://127.0.0.1:8000/profile/someusername/edit я получаю 404. Я не понимаю точно, что происходит с pk в urlpatterns. Какой шаблон url следует использовать для просмотра страницы, на которой я могу обновить профиль? Или здесь что-то не так?

I

+0

Кроме того, ваш шаблон URL-адреса ожидает идентификатор, и похоже, что вы отправляете имя пользователя, которое не работает. Измените шаблон регулярного выражения, чтобы принять символы – karthikr

ответ

1

У вас есть в середине вашего регулярного выражения, которое не имеет никакого смысла, потому что это терминатор персонажу $. Убери это.

+0

Или еще лучше, переместите его в конец регулярного выражения: '^ profile/(? P \ d +)/edit $' – Alasdair

+0

Большое спасибо, это было сочетание как регулярного выражения, так и что сказал @karthikr. – aaravam