使用Django模型从另一个应用程序创建条目,并在独立的数据库标签中创建条目

2024-04-23 18:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个Django应用程序,如下所示。按原样,Django将创建两个DB表appa\u modela和appb\u modelb。ModelB对象创建者逗号.py将保存到“appb\u modeb”表。但是,我希望由appA创建的ModelB对象独立于由appB创建的对象。我知道“Meta”子类,其中设置了“app\u label”和“db\u table”。当ModelB导入到appA模块时,如何确保将“app\u label”更改为“appA”?你知道吗

阿帕/型号.py你知道吗

from django.db import models
class ModelA(models.Model):
  list_of_modelB_pk = models.TextField(default='',
       validators=[validate_comma_separated_integer_list])

appA/management/commands/逗号.py你知道吗

from django.core.management.base import BaseCommand
import json
from appA.models import ModelA
from appB.models import ModelB
class Command(BaseCommand):
  def handle(self, *args, **options):
    mb1 = ModelB()
    mb1.save()
    print mb1._meta.app_label # prints 'appB' why not 'appA'?
    mb2 = ModelB()
    mb2.save()
    ma = ModelA()
    ma.list_of_modelB_pk = json.dumps([mb1.pk,mb2.pk])
    ma.save()
    print ma._meta.app_label # prints 'appA'

附录B/型号.py你知道吗

from django.db import models
class ModelB(models.Model):
  fieldB1 = models.IntegerField(default=0)

应用/管理/命令/商业银行你知道吗

from django.core.management.base import BaseCommand
from appB.models import ModelB
class Command(BaseCommand):
  def handle(self, *args, **options):
    mb1 = ModelB()
    mb1.save()
    mb2 = ModelB()
    mb2.save()

Tags: djangofrompyimportappmodelssavelabel