我有一个应用程序和一个模型。 我想在两个应用程序上分离模型,以便用户从一个单独的应用程序进行管理。 这种模式的转移会起作用吗?我该怎么办?
class User(AbstractUser):
country = models.CharField(max_length=2, choices=COUNTRY, default=RUSSIA)
这是我的models.py - 必须是单独的
RUSSIA = 'RUS'
USA = 'USA'
GERMANY = 'GER'
COUNTRY = (
(RUSSIA, "Russia"),
(USA, "USA"),
(GERMANY, "Germany"),
)
class User(AbstractUser):
country = models.CharField(max_length=2, choices=COUNTRY, default=RUSSIA)
class Country(models.Model):
country = models.CharField(max_length=3, choices=COUNTRY, default=RUSSIA)
name_of_team = models.CharField(max_length=255, blank=True, null=True)
def __unicode__(self):
return self.name_of_team
答案 0 :(得分:0)
您可以创建两个应用,一个用于用户,一个用于国家/地区,然后您只需将国家/地区模型导入用户模型。
此外,如果您想保持国家/地区和用户之间的关系,则应使用 ForeignKey 。很抱歉,如果它与您的逻辑不符,但我不确定您的模型看起来如何,这对我来说有点疏远。
这样的事情:
国家/ models.py
RUSSIA = 'RUS'
USA = 'USA'
GERMANY = 'GER'
COUNTRY = (
(RUSSIA, "Russia"),
(USA, "USA"),
(GERMANY, "Germany"),
)
class Country(models.Model):
# I don't know why country attr in Country class
country = models.CharField(max_length=3, choices=COUNTRY, default=RUSSIA)
name_of_team = models.CharField(max_length=255, blank=True, null=True)
def __unicode__(self):
return self.name_of_team
用户/ models.py
from country.models import Country
class User(AbstractUser):
# ForeignKey, here you make the relation with country model
country = models.ForeignKey(Country)
答案 1 :(得分:0)
您可以创建两个应用程序,一个用于用户,一个用于国家/地区。然后将User模型放在Users应用程序中,将Country模型放在Countries应用程序中。
然后在第三个应用程序中,您可以根据需要导入它们:
from countries.models import Country
from users.models import User
将这部分代码放在settings.py文件中:
RUSSIA = 'RUS'
USA = 'USA'
GERMANY = 'GER'
COUNTRY = (
(RUSSIA, "Russia"),
(USA, "USA"),
(GERMANY, "Germany"),
)
如果你这样做,那么你可以从这两个应用程序访问常量:
from django.conf import settings
settings.COUNTRY