I want to update my user profile data.But when run got this error 'function' object has no attribute 'as_view'.
I am using Django 1.8, python 2.7
I am new in Django.
urls.py code :
from django.conf.urls import include, url
from . import views
urlpatterns = [
url(r'^(?P<pk>\d+)/$',
views.UserProfileDetail.as_view(),
name='user_profile_detail'),
url(r'^(?P<pk>\d+)/update/$',
views.UserProfileUpdate.as_view(),
name='user_profile_edit'),
]
views.py:
from django.shortcuts import render
from blog.models import Post, UserProfile
from blog.forms import UserForm, UserProfileForm, PostForm
from django.contrib.auth.models import User
from django.views.generic import DetailView
from django.views.generic import CreateView, UpdateView
from .models import UserProfile
class UserProfileDetail(DetailView):
model = UserProfile
@login_required
class UserProfileUpdate(UpdateView):
model = UserProfile
fields = ('name', 'website',)
def get(self, request, *args, **kwargs):
UserProfile(kwargs['pk'])
return (super(UserProfileUpdate, self).
get(self, request, *args, **kwargs))
models.py
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=30)
website = models.URLField(blank=True)
def __unicode__(self):
return self.user.username
html:
{% extends 'blog/base.html' %}
{% block content %}
<h2>Edit {{ object.user.username }} Profile</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update" />
</form>
{% endblock %}