Reputation: 43
myapp.AuthPermission.content_type: (fields.E300) Field defines a relation with model 'DjangoContentType', which is either not installed, or is abstract.
myapp.AuthPermission.content_type: (fields.E307) The field myapp.AuthPermission.content_type was declared with a lazy reference to 'myapp.djangocontenttype', but app 'myapp' doesn't provide model 'djangocontenttype'.
my model.py
from django.db import models
class AuthGroup(models.Model):
name = models.CharField(unique=True, max_length=150)
class Meta:
managed = False
db_table = 'auth_group'
class AuthGroupPermissions(models.Model):
group = models.ForeignKey(AuthGroup, models.DO_NOTHING)
permission = models.ForeignKey('AuthPermission', models.DO_NOTHING)
class Meta:
managed = False
db_table = 'auth_group_permissions'
unique_together = (('group', 'permission'),)
class AuthPermission(models.Model):
name = models.CharField(max_length=255)
content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING)
codename = models.CharField(max_length=100)
class Meta:
managed = False
db_table = 'auth_permission'
unique_together = (('content_type', 'codename'),)
class BackgroundTask(models.Model):
task_name = models.CharField(max_length=190)
task_params = models.TextField()
task_hash = models.CharField(max_length=40)
verbose_name = models.CharField(max_length=255, blank=True, null=True)
priority = models.IntegerField()
run_at = models.DateTimeField()
repeat = models.BigIntegerField()
repeat_until = models.DateTimeField(blank=True, null=True)
queue = models.CharField(max_length=190, blank=True, null=True)
attempts = models.IntegerField()
failed_at = models.DateTimeField(blank=True, null=True)
last_error = models.TextField()
locked_by = models.CharField(max_length=64, blank=True, null=True)
locked_at = models.DateTimeField(blank=True, null=True)
creator_object_id = models.IntegerField(blank=True, null=True)
creator_content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'background_task'
class BackgroundTaskCompletedtask(models.Model):
task_name = models.CharField(max_length=190)
task_params = models.TextField()
task_hash = models.CharField(max_length=40)
verbose_name = models.CharField(max_length=255, blank=True, null=True)
priority = models.IntegerField()
run_at = models.DateTimeField()
repeat = models.BigIntegerField()
repeat_until = models.DateTimeField(blank=True, null=True)
queue = models.CharField(max_length=190, blank=True, null=True)
attempts = models.IntegerField()
failed_at = models.DateTimeField(blank=True, null=True)
last_error = models.TextField()
locked_by = models.CharField(max_length=64, blank=True, null=True)
locked_at = models.DateTimeField(blank=True, null=True)
creator_object_id = models.IntegerField(blank=True, null=True)
creator_content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'background_task_completedtask'
class DjangoAdminLog(models.Model):
action_time = models.DateTimeField()
object_id = models.TextField(blank=True, null=True)
object_repr = models.CharField(max_length=200)
action_flag = models.SmallIntegerField()
change_message = models.TextField()
content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING, blank=True, null=True)
user = models.ForeignKey('MyappUser', models.DO_NOTHING)
class Meta:
managed = False
db_table = 'django_admin_log'
class DjangoCeleryBeatClockedschedule(models.Model):
clocked_time = models.DateTimeField()
class Meta:
managed = False
db_table = 'django_celery_beat_clockedschedule'
class DjangoCeleryBeatCrontabschedule(models.Model):
minute = models.CharField(max_length=240)
hour = models.CharField(max_length=96)
day_of_week = models.CharField(max_length=64)
day_of_month = models.CharField(max_length=124)
month_of_year = models.CharField(max_length=64)
timezone = models.CharField(max_length=63)
class Meta:
managed = False
db_table = 'django_celery_beat_crontabschedule'
class DjangoCeleryBeatIntervalschedule(models.Model):
every = models.IntegerField()
period = models.CharField(max_length=24)
class Meta:
managed = False
db_table = 'django_celery_beat_intervalschedule'
class DjangoCeleryBeatPeriodictask(models.Model):
name = models.CharField(unique=True, max_length=200)
task = models.CharField(max_length=200)
args = models.TextField()
kwargs = models.TextField()
queue = models.CharField(max_length=200, blank=True, null=True)
exchange = models.CharField(max_length=200, blank=True, null=True)
routing_key = models.CharField(max_length=200, blank=True, null=True)
expires = models.DateTimeField(blank=True, null=True)
enabled = models.BooleanField()
last_run_at = models.DateTimeField(blank=True, null=True)
total_run_count = models.IntegerField()
date_changed = models.DateTimeField()
description = models.TextField()
crontab = models.ForeignKey(DjangoCeleryBeatCrontabschedule, models.DO_NOTHING, blank=True, null=True)
interval = models.ForeignKey(DjangoCeleryBeatIntervalschedule, models.DO_NOTHING, blank=True, null=True)
solar = models.ForeignKey('DjangoCeleryBeatSolarschedule', models.DO_NOTHING, blank=True, null=True)
one_off = models.BooleanField()
start_time = models.DateTimeField(blank=True, null=True)
priority = models.IntegerField(blank=True, null=True)
headers = models.TextField()
clocked = models.ForeignKey(DjangoCeleryBeatClockedschedule, models.DO_NOTHING, blank=True, null=True)
expire_seconds = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'django_celery_beat_periodictask'
class DjangoCeleryBeatPeriodictasks(models.Model):
ident = models.SmallIntegerField(primary_key=True)
last_update = models.DateTimeField()
class Meta:
managed = False
db_table = 'django_celery_beat_periodictasks'
class DjangoCeleryBeatSolarschedule(models.Model):
event = models.CharField(max_length=24)
latitude = models.DecimalField(max_digits=9, decimal_places=6)
longitude = models.DecimalField(max_digits=9, decimal_places=6)
class Meta:
managed = False
db_table = 'django_celery_beat_solarschedule'
unique_together = (('event', 'latitude', 'longitude'),)
class DjangoContentType(models.Model):
app_label = models.CharField(max_length=100)
model = models.CharField(max_length=100)
class Meta:
managed = False
db_table = 'django_content_type'
unique_together = (('app_label', 'model'),)
class DjangoMigrations(models.Model):
app = models.CharField(max_length=255)
name = models.CharField(max_length=255)
applied = models.DateTimeField()
class Meta:
managed = False
db_table = 'django_migrations'
class DjangoSession(models.Model):
session_key = models.CharField(primary_key=True, max_length=40)
session_data = models.TextField()
expire_date = models.DateTimeField()
class Meta:
managed = False
db_table = 'django_session'
class MyappUserGroups(models.Model):
user = models.ForeignKey(MyappUser, models.DO_NOTHING)
group = models.ForeignKey(AuthGroup, models.DO_NOTHING)
class Meta:
managed = False
db_table = 'Myapp_user_groups'
unique_together = (('user', 'group'),)
class MyappUserUserPermissions(models.Model):
user = models.ForeignKey(MyappUser, models.DO_NOTHING)
permission = models.ForeignKey(AuthPermission, models.DO_NOTHING)
class Meta:
managed = False
db_table = 'Myapp_user_user_permissions'
unique_together = (('user', 'permission'),)
Upvotes: 0
Views: 276
Reputation: 659
The models.py
looks like it has been generated from a legacy database via inspectdb
command. Either regenerate the models file or Add the following to your models.py
file -
class DjangoContentType(models.Model):
app_label = models.CharField(max_length=100)
model = models.CharField(max_length=100)
class Meta:
managed = False
db_table = 'django_content_type'
unique_together = (('app_label', 'model'),)
Upvotes: 1