Sitesフレームフォークに含まれるモデル「Sites」のオーバーライドで問題が発生しました。サイトに「Sites」を含むフォームがあり、Site.domain ではなく Sites の名前を表示する必要があります。モデルをオーバーライドし、それを「Meta」クラスの同じ DB テーブルにルーティングし、エラーが発生します。理解して、ここにコードを書いてください:
モデル:
@python_2_unicode_compatible
class Site(models.Model):
domain = models.CharField(_('domain name'), max_length=100)
name = models.CharField(_('display name'), max_length=50)
objects = SiteManager()
class Meta:
db_table = 'django_site'
verbose_name = _('site')
verbose_name_plural = _('sites')
ordering = ('domain',)
def __str__(self):
return self.domain
def save(self, *args, **kwargs):
super(Site, self).save(*args, **kwargs)
# Cached information will likely be incorrect now.
if self.id in SITE_CACHE:
del SITE_CACHE[self.id]
def delete(self):
pk = self.pk
super(Site, self).delete()
try:
del SITE_CACHE[pk]
except KeyError:
pass
私のオーバーライドされたモデル:
from django.contrib.sites.models import Site
from django.utils.translation import ugettext_lazy as _
class NamedSite(Site):
def __str__(self):
return self.name
class Meta:
db_table = 'django_site'
verbose_name = _('site')
verbose_name_plural = _('sites')
ordering = ('domain',)
とエラー
DatabaseError at <my url>
ERROR: Column django_site.site_ptr_id doesn't exist
LINE 1: ...ROM "django_site" INNER JOIN "django_site" T2 ON ("django_si...