mirror of
https://github.com/django/django.git
synced 2024-12-23 17:46:27 +00:00
4a954cfd11
This patch does not remove all occurrences of the words in question. Rather, I went through all of the occurrences of the words listed below, and judged if they a) suggested the reader had some kind of knowledge/experience, and b) if they added anything of value (including tone of voice, etc). I left most of the words alone. I looked at the following words: - simply/simple - easy/easier/easiest - obvious - just - merely - straightforward - ridiculous Thanks to Carlton Gibson for guidance on how to approach this issue, and to Tim Bell for providing the idea. But the enormous lion's share of thanks go to Adam Johnson for his patient and helpful review.
108 lines
5.7 KiB
Plaintext
108 lines
5.7 KiB
Plaintext
==============
|
|
FAQ: The admin
|
|
==============
|
|
|
|
I can't log in. When I enter a valid username and password, it just brings up the login page again, with no error messages.
|
|
===========================================================================================================================
|
|
|
|
The login cookie isn't being set correctly, because the domain of the cookie
|
|
sent out by Django doesn't match the domain in your browser. Try setting the
|
|
:setting:`SESSION_COOKIE_DOMAIN` setting to match your domain. For example, if
|
|
you're going to "https://www.example.com/admin/" in your browser, set
|
|
``SESSION_COOKIE_DOMAIN = 'www.example.com'``.
|
|
|
|
I can't log in. When I enter a valid username and password, it brings up the login page again, with a "Please enter a correct username and password" error.
|
|
===========================================================================================================================================================
|
|
|
|
If you're sure your username and password are correct, make sure your user
|
|
account has :attr:`~django.contrib.auth.models.User.is_active` and
|
|
:attr:`~django.contrib.auth.models.User.is_staff` set to True. The admin site
|
|
only allows access to users with those two fields both set to True.
|
|
|
|
How do I automatically set a field's value to the user who last edited the object in the admin?
|
|
===============================================================================================
|
|
|
|
The :class:`~django.contrib.admin.ModelAdmin` class provides customization hooks
|
|
that allow you to transform an object as it saved, using details from the
|
|
request. By extracting the current user from the request, and customizing the
|
|
:meth:`~django.contrib.admin.ModelAdmin.save_model` hook, you can update an
|
|
object to reflect the user that edited it. See :ref:`the documentation on
|
|
ModelAdmin methods <model-admin-methods>` for an example.
|
|
|
|
How do I limit admin access so that objects can only be edited by the users who created them?
|
|
=============================================================================================
|
|
|
|
The :class:`~django.contrib.admin.ModelAdmin` class also provides customization
|
|
hooks that allow you to control the visibility and editability of objects in the
|
|
admin. Using the same trick of extracting the user from the request, the
|
|
:meth:`~django.contrib.admin.ModelAdmin.get_queryset` and
|
|
:meth:`~django.contrib.admin.ModelAdmin.has_change_permission` can be used to
|
|
control the visibility and editability of objects in the admin.
|
|
|
|
My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_wsgi.
|
|
=========================================================================================================================
|
|
|
|
See :ref:`serving the admin files <serving-the-admin-files>`
|
|
in the "How to use Django with mod_wsgi" documentation.
|
|
|
|
My "list_filter" contains a ManyToManyField, but the filter doesn't display.
|
|
============================================================================
|
|
|
|
Django won't bother displaying the filter for a ``ManyToManyField`` if there
|
|
are fewer than two related objects.
|
|
|
|
For example, if your :attr:`~django.contrib.admin.ModelAdmin.list_filter`
|
|
includes :doc:`sites </ref/contrib/sites>`, and there's only one site in your
|
|
database, it won't display a "Site" filter. In that case, filtering by site
|
|
would be meaningless.
|
|
|
|
Some objects aren't appearing in the admin.
|
|
===========================================
|
|
|
|
Inconsistent row counts may be caused by missing foreign key values or a
|
|
foreign key field incorrectly set to :attr:`null=False
|
|
<django.db.models.Field.null>`. If you have a record with a
|
|
:class:`~django.db.models.ForeignKey` pointing to a nonexistent object and
|
|
that foreign key is included is
|
|
:attr:`~django.contrib.admin.ModelAdmin.list_display`, the record will not be
|
|
shown in the admin changelist because the Django model is declaring an
|
|
integrity constraint that is not implemented at the database level.
|
|
|
|
How can I customize the functionality of the admin interface?
|
|
=============================================================
|
|
|
|
You've got several options. If you want to piggyback on top of an add/change
|
|
form that Django automatically generates, you can attach arbitrary JavaScript
|
|
modules to the page via the model's class Admin :ref:`js parameter
|
|
<modeladmin-asset-definitions>`. That parameter is a list of URLs, as strings,
|
|
pointing to JavaScript modules that will be included within the admin form via
|
|
a ``<script>`` tag.
|
|
|
|
If you want more flexibility than is feasible by tweaking the auto-generated
|
|
forms, feel free to write custom views for the admin. The admin is powered by
|
|
Django itself, and you can write custom views that hook into the authentication
|
|
system, check permissions and do whatever else they need to do.
|
|
|
|
If you want to customize the look-and-feel of the admin interface, read the
|
|
next question.
|
|
|
|
The dynamically-generated admin site is ugly! How can I change it?
|
|
==================================================================
|
|
|
|
We like it, but if you don't agree, you can modify the admin site's
|
|
presentation by editing the CSS stylesheet and/or associated image files. The
|
|
site is built using semantic HTML and plenty of CSS hooks, so any changes you'd
|
|
like to make should be possible by editing the stylesheet.
|
|
|
|
What browsers are supported for using the admin?
|
|
================================================
|
|
|
|
The admin provides a fully-functional experience to `YUI's A-grade`_ browsers,
|
|
with the notable exception of IE6, which is not supported.
|
|
|
|
There *may* be minor stylistic differences between supported browsers—for
|
|
example, some browsers may not support rounded corners. These are considered
|
|
acceptable variations in rendering.
|
|
|
|
.. _YUI's A-grade: https://github.com/yui/yui3/wiki/Graded-Browser-Support
|