【发布时间】:2019-11-27 12:44:14
【问题描述】:
我正在处理一个由公司前雇员制作的 Django 项目(所以我正在重构一个由不遵循 Django 最佳实践的其他人制作的整个项目),它在不同的应用程序上有两个模型,使用数据库上的相同表。两个应用程序都使用了 City 和 State 表。
我想知道哪种方法是应用 DRY 概念的最佳方式,并且只使用一个模型让两个应用程序访问这些表。
这两个应用程序位于项目文件夹中,每个应用程序都有自己的models.py,城市/州代码如下:
from django.db import models
from django.contrib.auth.models import User,Group
from django.db.models.signals import post_save
from django.dispatch import receiver
class state(models.Model):
class Meta:
db_table = '"db_property"."state"'
created_at = models.DateTimeField(db_column='created_at')
updated_at = models.DateTimeField(db_column='updated_at')
name = models.CharField(db_column='name',max_length=50)
class city(models.Model):
class Meta:
db_table = '"db_property"."city"'
created_at = models.DateTimeField(db_column='created_at')
updated_at = models.DateTimeField(db_column='updated_at')
name = models.CharField(db_column='name',max_length=50)
state = models.ForeignKey(state,on_delete=models.CASCADE)
【问题讨论】:
-
我不明白你为什么需要定义这些模型两次。你为什么这样做?
-
我没有。我的问题正是我必须做些什么才能删除其中一个模型并且应用程序保持正常工作。我正在重构别人的代码。
标签: python django python-3.x django-models django-2.1