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 these two things:
SESSION_COOKIE_DOMAIN
setting in your admin config
file to match your domain. For example, if you’re going to
“http://www.example.com/admin/” in your browser, in
“myproject.settings” you should set SESSION_COOKIE_DOMAIN = 'www.example.com'
.SESSION_COOKIE_DOMAIN
accordingly.If you’re sure your username and password are correct, make sure your user
account has is_active
and is_staff
set to True. The admin site only
allows access to users with those two fields both set to True.
Set the CACHE_MIDDLEWARE_ANONYMOUS_ONLY
setting to True
. See the
cache documentation for more information.
The 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
save_model()
hook, you can update an
object to reflect the user that edited it. See the documentation on
ModelAdmin methods for an example.
The 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
queryset()
and
has_change_permission()
can be used to
control the visibility and editability of objects in the admin.
See serving the admin files in the “How to use Django with mod_wsgi” documentation.
Django won’t bother displaying the filter for a ManyToManyField
if there
are fewer than two related objects.
For example, if your list_filter
includes 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.
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
js
parameter. 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 simply 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.
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. We’ve got a guide to the CSS used in the admin to get you started.
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.
Oct 11, 2017