学习 Django - models.py ForeignKey 或 ManyToManyField 或者其他?

Learning Django - models.py ForeignKey or ManyToManyField or else?

正在尝试获得一些 Django 技能。我想要一个 class 与一个字段相乘。因此,我可以将不止一个连接到我的主 class,并可选择是否处于活动状态(以备将来需要)。
所以我的 subclass 看起来像这样:

class Subclass(models.Model):

  STATUS=(
  ('A', Active),
  ('U', Unactive)
  )
  status = modelsCharField(max_length=1, choices=STATUS)
  name = models.CharField(some options)

在主要 class 上,我想将其称为参考,但如果我选择:

field=models.ManyToManyField(Subclass)

它表示为第二个 table,对于每个实体,我必须从它的所有实体中进行选择。因此,如果我在 subclass 中有 2k 个实体,我必须滚动所有实体以找到我的连接(例如在默认管理页面中)

我不想这样。我只需要连接并显示在管理中的 2k 个实体中的 2 个。稍后只有那些状态为活动的才会显示在页面本身上。

所以我想我应该尝试一个 ForeignKey 关系:

field=models.ForeignKey(Subclass, on_delegate=models.CASCADE)

虽然在迁移过程中,这给我带来了关于 missing default values 的错误。 欢迎任何帮助,因为我现在有点卡住了。

非常感谢#AMG。我按照你的建议做了,现在可以了。 在我的 models.py

class Person(models.Model):
name = models.CharField(max_length=200, default="Name")
phone = models.CharField(max_length=12, default="+22123456789")
...
class Adress(models.Model):
...
person = models.ForeignKey(Person, on_delete=models.CASCADE)
...

还有我的admin.py

from django.contrib import admin
from .models import Adress
from .models import Person

class AdressInline(admin.TabularInline):
model = Adress

class PersonAdmin(admin.ModelAdmin):
inlines = [
AdressInline    
]

admin.site.register(Person, PersonAdmin)

这让我可以添加一个 Person 对象并在同一个地方为其添加一个地址。我现在要做的就是格式化列表。