Vous êtes sur la page 1sur 4

==================== Django user profiles ==================== This is a fairly simple user-profile management application for Django_, designed to make

the process of creating, editing and viewing user profiles as painless as possible. .. _Django: http://www.djangoproject.com/ Overview ======== In order to provide site-specific, per-user information in addition to what's stored by the ``User`` model in ``django.contrib.auth``, Django allows the use of a "user profile" model, which should be specified as the value of the ``AUTH_PROFILE_MODULE`` setting. If you're unfamiliar with this process, documentation is available in the "Profiles" section of `Chapter 12 of the Django book`_. This application assumes that you have created a profile model for use on your site, and that you have filled in the ``AUTH_PROFILE_MODULE`` setting appropriately. This application provides views which cover the primary aspects of using profiles: * Allowing users to create their profiles * Allowing users to edit their profiles * Allowing profiles to be publicly viewable Of these, the first two are the most important; the third -- publicly viewing user profiles -- is useful, but for sites which use profiles merely to store user preferences this can usually be omitted. .. _Chapter 12 of the Django book: http://www.djangobook.com/en/beta/chapter12/ Installation ============ In order to use django-profiles, you will need to have a functioning installation of Django 1.0 or newer. There are three basic ways to install django-profiles: automatically installing a package using Python's package-management tools, manually installing a package, and installing from a Mercurial checkout. Using a package-management tool ------------------------------The easiest way by far to install django-profiles and most other interesting Python software is by using an automated package-management tool, so if you're not already familiar with the available tools for Python, now's as good a time as any to get started.

The most popular option currently is `easy_install`_; refer to its documentation to see how to get it set up. Once you've got it, you'll be able to simply type:: easy_install django-profiles And it will handle the rest. Another option that's currently gaining steam (and which I personally prefer for Python package management) is `pip`_. Once again, you'll want to refer to its documentation to get up and running, but once you have you'll be able to type:: pip install django-profiles And you'll be done. Manually installing the 0.2 package ----------------------------------If you'd prefer to do things the old-fashioned way, you can manually download the `django-profiles 0.2 package`_ from the Python Package Index. This will get you a file named "django-profiles-0.2.tar.gz" which you can unpack (double-click on the file on most operating systems) to create a directory named "django-profiles-0.2". Inside will be a script named "setup.py"; running:: python setup.py install will install django-profiles (though keep in mind that this defaults to a system-wide installation, and so may require administrative privileges on your computer). Installing from a Mercurial checkout -----------------------------------If you have `Mercurial`_ installed on your computer, you can also obtain a complete copy of django-profiles by typing:: hg clone http://bitbucket.org/ubernostrum/django-profiles/ Inside the resulting "django-profiles" directory will be a directory named "profiles", which is the actual Python module for this application; you can symlink it from somewhere on your Python path. If you prefer, you can use the setup.py script in the "django-profiles" directory to perform a normal installation, but using a symlink offers easy upgrades: simply running ``hg pull -u`` inside the django-profiles directory will fetch updates from the main repository and apply them to your local copy. .. .. .. .. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall _pip: http://pypi.python.org/pypi/pip/ _django-profiles 0.2 package: http://pypi.python.org/pypi/django-profiles/0.2 _Mercurial: http://www.selenic.com/mercurial/wiki/

Basic use ========= For default use, create a profile model for your site and specify the ``AUTH_PROFILE_MODULE`` setting appropriately. Then add ``profiles`` to your ``INSTALLED_APPS`` setting, create the appropriate templates and set up the URLs. For convenience in linking to profiles, your profile model should define a ``get_absolute_url()`` method which routes to the view ``profiles.views.profile_detail``, passing the username. Typically, this will be done as follows:: def get_absolute_url(self): return ('profiles_profile_detail', (), { 'username': self.user.username }) get_absolute_url = models.permalink(get_absolute_url) In the default configuration, this application requires four templates to be created: ``profiles/create_profile.html`` This will display the form for users to initially fill in their profiles; it receives one variable -- ``form``, representing the form for profile creation -- directly, and also uses ``RequestContext`` so that context processors will be applied. ``profiles/edit_profile.html`` This will display the form for users to edit their profiles; it receives one variable -- ``form``, representing the form for profile editing -- directly, and also uses ``RequestContext`` so that context processors will be applied. ``profiles/profile_detail.html`` This will publicly display a user's profile; it receives one variable -- ``profile``, representing the profile object -directly, and also uses ``RequestContext`` so that context processors will be applied. ``profiles/profile_list.html`` This will display a list of user profiles, using `the list_detail.object_list generic view`_. For the default URL setup, add the following line to your root URLConf:: (r'^profiles/', include('profiles.urls')), This will set up the following URL patterns: * ``/profiles/create/`` will be the view for profile creation, and its URL pattern is named ``profiles_create_profile``. * ``/profiles/edit/`` will be the view for profile editing, and its URL pattern is named ``profiles_edit_profile``. * ``/profiles/<username>/`` will be the view for public display of a user profile, and its URL pattern is named ``profiles_profile_detail``. * ``/profiles/`` will be the view for a browsable list of user

profiles. For notes on more advanced usage, including customization of the form classes used for profile editing and creation and how to allow users to prevent public display of their profiles, see the file ``views.txt`` in this directory. .. _the list_detail.object_list generic view: http://www.djangoproject.com/docum entation/generic_views/#django-views-generic-list-detail-object-list If you spot a bug ================= Head over to this application's `project page on Bitbucket`_ and check `the issues list`_ to see if it's already been reported. If not, open a new issue and I'll do my best to respond quickly. .. _project page on Bitbucket: http://www.bitbucket.org/ubernostrum/django-profi les/overview/ .. _the issues list: http://www.bitbucket.org/ubernostrum/django-profiles/issues /

Vous aimerez peut-être aussi