yo, I'd like to update the "Admin 404s on users" and dumpdata error: ContentType matching query does not exist" for people who, like me, are searching the web for answers.
>From the Admin 404s on users discussion (which I cannot seem to reply to, hence the new thread; eit) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ContentType matching query does not exist. Run this code: """ from django.contrib.contenttypes.management import create_contenttypes from django.db.models import get_apps for app in get_apps(): create_contenttypes(app, created_models=None, verbosity=2) """ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The update is that instead of for app in get_apps(): create_contenttypes(app, created_models=None, verbosity=2) you can call update_all_contenttypes() or for app in get_apps(): update_contenttypes(app, created_models=None, verbosity=2) you may find it useful to first import your project settings: import sys, os from django.core.management import setup_environ import settings setup_environ(settings) So what does it mean for permission and content types to be out of sync? Let's look at the sql: [1] the two tables we care about are: auth_permission and django_content_type mysql> describe auth_permission; +-----------------+--------------+------+-----+--------- +----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+--------- +----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | NO | | | | | content_type_id | int(11) | NO | MUL | | | | codename | varchar(100) | NO | | | | +-----------------+--------------+------+-----+--------- +----------------+ mysql> describe django_content_type; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | NO | | | | | app_label | varchar(100) | NO | MUL | | | | model | varchar(100) | NO | | | | +-----------+--------------+------+-----+---------+----------------+ [2] django_content_type.id and auth_permission.content_type_id should match. See the pattern in these examples? mysql> select * from auth_permission; +----+--------------------------------+----------------- +---------------------------+ | id | name | content_type_id | codename | +----+--------------------------------+----------------- +---------------------------+ | 1 | Can add message | 1 | add_message | | 2 | Can change message | 1 | change_message | | 3 | Can delete message | 1 | delete_message | | 4 | Can add group | 2 | add_group | | 5 | Can change group | 2 | change_group | | 6 | Can delete group | 2 | delete_group | etc mysql> select * from django_content_type; +----+---------------------+--------------+--------------------+ | id | name | app_label | model | +----+---------------------+--------------+--------------------+ | 1 | message | auth | message | | 2 | group | auth | group | | 3 | user | auth | user | | 4 | permission | auth | permission | | 5 | content type | contenttypes | contenttype | | 6 | session | sessions | session | | 7 | site | sites | site | | 8 | log entry | admin | logentry | | 9 | room | bills | room | etc For me, I had models showing up in auth_permission that didn't exist anymore. They weren't in django_content_type. Furthermore, I had duplicate models with wrong content_types, as if a sync had simply appended auth_permissions instead of updating the models that were present. I don't know how it happened. Maybe switching from sqlite3 to mysql? maybe switching servers. Something let me corrupt or load faulty data that I couldn't dump! I deleted and inserted the appropriate rows in auth_permission, syncdb'ed and reloaded--and voila, it works again. Probably it's better not to converse with mysql directly. I couldn't get the python stuff to work. Maybe others will find it useful, or will update the python code if appropriate. Regardless, it helps to have a clearer picture of what's going! ps - The following sql command list is super useful. Props to the author. http://www.pantz.org/software/mysql/mysqlcommands.html I hope that helps, diN0bot! Are you an awesome open source developer who loves collaboration, activism and fun challenges? Check out ThoughtAndMemory.org's consumer empowerment web app. http://thoughtandmemory.org/trac Join the small but passionate dev flock team as a volunteer, submit a resume to work full time (grants in process), or intern with us this summer (boston area college work-study programs may provide funding). [EMAIL PROTECTED] Director of Technology at ThoughtAndMemory.org, a growing non-profit devoted to providing tools that enable people to make responsible purchases and informed decisions on a variety of issues, including global warming, pollution, energy, human rights, health and political contributions. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---