我讀過很多問題,其中包括here和here,但沒有答案。這裏是我的2款有問題的:總是問:「以下內容類型陳舊,需要刪除」!
# coding=UTF-8
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from app.models.generic import BaseModel
from app.models.personne import Personne
@python_2_unicode_compatible
class Message(BaseModel):
src = models.ForeignKey('Personne', related_name='message_src')
dst = models.ForeignKey('Personne', related_name='message_dst')
is_read = models.BooleanField(default=False)
message = models.TextField(null=True, blank=True,
verbose_name=_(u'Messages'))
def __str__(self):
return u'{} : {} <> {} ({}) : "{}"'.format(
self.date_creation.strftime('%Y-%m-%d %H:%M:%S'),
self.src.full_name(), self.dst.full_name(),
_(u'read') if self.is_read else _(u'unread'),
self.message_summary()
).strip()
class Meta:
ordering = ["date_creation"]
@python_2_unicode_compatible
class Conversation(BaseModel):
personnes = models.ManyToManyField(Personne, related_name='conversations')
messages = models.ManyToManyField(Message, related_name='conversations')
order_with_respect_to = 'messages'
def __str__(self):
return _(u'Conversation n.{}').format(self.pk).strip()
每次我做一個migrate
我不斷收到這個問題,,我總是回答yes
:
The following content types are stale and need to be deleted:
app | conversation_personnes
app | conversation_messages
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Type 'yes' to continue, or 'no' to cancel: yes
Process finished with exit code 0
這不是可能重複this question。
這裏是我的django_content_type
表的快照,有沒有模型像conversation_personnes
或conversation_messages
:
因此,如果我嘗試:
>>> from django.contrib.contenttypes.models import ContentType
ct = ContentType.objects.get(app_label='app', model='conversation_personnes')
ct.delete()
Traceback (most recent call last):
File "<input>", line 2, in <module>
File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 334, in get
self.model._meta.object_name
DoesNotExist: ContentType matching query does not exist.
在我的整個唯一的地方代碼,我找到conversation_personnes
是一個遷移文件,其中包含:
File 0060_messagethrough.py
class Migration(migrations.Migration):
dependencies = [
('app', '0059_auto_20160226_1752'),
]
operations = [
migrations.CreateModel(
name='MessageThrough',
fields=[
],
options={
'proxy': True,
},
bases=('app.conversation_messages',),
),
]
...和
File 0058_auto_20160225_0106.py
class Migration(migrations.Migration):
dependencies = [
('app', '0057_conversation_personnes'),
]
operations = [
migrations.RemoveField(
model_name='message',
name='conversation',
),
migrations.AddField(
model_name='conversation',
name='messages',
field=models.ManyToManyField(to='app.Message'),
),
]
我缺少什麼?
你有沒有試過這個:http://stackoverflow.com/questions/5510843/django-syncdb-incorrectly-warns-that-many-to-many-field-is-stale – ilse2005
**這不是重複的,我更新了我的問題** –
我已經更新了我的問題,非常精確,所以人們可能有所有的線索要回答。 –