Zinnia与Cookiecutter-Django集成用户模型问题导致无法迁移
Hey there, let's work through this migration problem you're facing with Zinnia and your Cookiecutter-Django setup. I've dealt with similar compatibility hiccups before, so here are the key steps to get things sorted:
1. Make Sure Zinnia is Added to Your Installed Apps
Looking at your THIRD_PARTY_APPS snippet, I don't see zinnia listed—this is probably the first thing causing the migration failure. Django can't run migrations for an app that isn't registered in your settings. Update your config like this:
THIRD_PARTY_APPS = ( 'crispy_forms', # Form layouts 'allauth', # registration 'zinnia', # Add Zinnia here ... )
Double-check the comma at the end of the line to avoid Python tuple syntax errors.
2. Install Zinnia's Required Dependencies
Zinnia 0.20 relies on a few extra packages that aren't included in the default Cookiecutter-Django setup. Run this command to install versions compatible with Django 1.9.9:
pip install django-mptt==0.8.7 django-tagging==0.4.6 django-xmlrpc==0.1.8
These core dependencies are essential for Zinnia to run migrations and function properly.
3. Try Running Zinnia's Migrations Separately
Instead of running a global migrate command first, target Zinnia specifically to isolate any issues. Execute this:
python manage.py migrate zinnia
If this works, you can then run python manage.py migrate to handle the rest of your app migrations. If it fails, the error message will give you a clear clue about what's missing—like a missing dependency or conflicting setting.
4. Verify URL Configuration (For Future Functionality)
While this might not fix the migration issue directly, it's critical for Zinnia to work once migrations are done. Add this to your project's urls.py:
from django.conf.urls import include, url urlpatterns = [ # Your existing URLs here url(r'^weblog/', include('zinnia.urls', namespace='zinnia')), ]
The namespace='zinnia' is mandatory for Zinnia's internal URL routing.
5. Dig Into the Error Message
If none of the above steps work, don't ignore the error output in your terminal. Common issues include:
- Missing dependencies (e.g.,
ImportError: No module named 'mptt') - Database permission issues (make sure your DB user has full access to create tables)
- Conflicting migrations from other apps (check if another app uses the same table names as Zinnia)
Copy the exact error message and cross-reference it with Zinnia's 0.20 documentation for Django 1.x—this will point you straight to the root cause.
内容的提问来源于stack exchange,提问作者Flavio Barros

