マルチテーブル継承を使用するモデルがいくつかあります。そのようです。
class Group(models.Model):
title = models.CharField(unique=True,max_length=255)
class UserGroup(Group):
user = models.ForeignKey(User)
def save(self, *args, **kwargs):
self.title = self.user.username
return super(Group, self).save(*args, **kwargs)
UserGroups には一意のタイトルが必要であり、Groups も同様です。ただし、UserGroup のタイトルが Group と同じかどうかは問題ではありません。事実、これは場合によっては発生するはずです。これどうやってするの?
編集: save メソッドを使用して名前空間を作成するとどうなりますか。
class UserGroup(Group):
user = models.ForeignKey(User)
def save(self, *args, **kwargs):
self.title = "user:" + self.user.username
return super(UserGroup, self).save(*args, **kwargs)
class Group(models.Model):
title = models.CharField(unique=True,max_length=255)
def save(self, *args, **kwargs):
self.title = "group:" + self.title
return super(Group, self).save(*args, **kwargs)
これは良い解決策でしょうか?