mirror of
				https://github.com/django/django.git
				synced 2025-10-25 14:46:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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 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.
 | |
| 
 | |
| 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
 |