如何将模型分成两个应用程序
How to separate the model into two applications
我有一个应用程序和一个模型。
我想在两个应用程序上分离模型,以便从单独的应用程序管理用户。
转移这个模型会成功吗?我必须做什么?
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
您可以创建两个应用程序,一个用于用户,一个用于国家/地区,然后您只需将国家/地区模型导入用户模型即可。
此外,如果你想保持国家和用户之间的关系,你应该使用 ForeignKey。很抱歉,如果它与您的逻辑不符,但我不确定您的模型看起来如何,这对我来说有点陌生。
像这样:
country/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
user/models.py
from country.models import Country
class User(AbstractUser):
# ForeignKey, here you make the relation with country model
country = models.ForeignKey(Country)
您可以创建两个应用程序,一个用于用户,一个用于国家。然后将 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
我有一个应用程序和一个模型。 我想在两个应用程序上分离模型,以便从单独的应用程序管理用户。 转移这个模型会成功吗?我必须做什么?
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
您可以创建两个应用程序,一个用于用户,一个用于国家/地区,然后您只需将国家/地区模型导入用户模型即可。
此外,如果你想保持国家和用户之间的关系,你应该使用 ForeignKey。很抱歉,如果它与您的逻辑不符,但我不确定您的模型看起来如何,这对我来说有点陌生。
像这样:
country/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
user/models.py
from country.models import Country
class User(AbstractUser):
# ForeignKey, here you make the relation with country model
country = models.ForeignKey(Country)
您可以创建两个应用程序,一个用于用户,一个用于国家。然后将 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