【问题标题】:How take modal as data type for field of another modal in Django?如何将模态作为 Django 中另一个模态字段的数据类型?
【发布时间】:2026-02-05 16:35:02
【问题描述】:

这里我有卖家模式,其中包含联系人字段。我创建了一个名为 Contact 的新模型名称,其中包含字段 contact_number 和 address。

我可以简单地将卖家模型的联系人字段的外键提供给联系人模型。

但这里我想使用 Contact 模型作为 Seller 模型的联系人字段的新数据类型。

class Contact(models.Model):
    contact_number = PhoneNumberField(blank=False, null=False)
    address = models.TextField(blank=False, null=False)

    def __str__(self):
        return "%s" % self.name


class Seller(models.Model):
    company_name = models.CharField(max_length=300, blank=False, null=False)
    company_profile = models.TextField(blank=False, null=False)
    contact = Contact() #Here I want use Contact model as data type for the contact field

    def __str__(self):
        return "%s" % self.company_name

这可能吗?

如果是,任何人都可以请指导我。我是 Django 新手,我只有 Django 的基本知识。

这里我使用 PostgreSQL 作为数据库。

【问题讨论】:

标签: django postgresql django-models django-rest-framework


【解决方案1】:

您使用 django 的任何数据库都会处理此问题,如果您使用不同的数据库而不是 sqllite,请按照文档更改设置。

class Contact(models.Model):
 contact_number = PhoneNumberField(blank=False, null=False)
 address = models.TextField(blank=False, null=False)

 def __str__(self):
    return "%s" % self.name


class Seller(models.Model):
  company_name = models.CharField(max_length=300, blank=False, null=False)
  company_profile = models.TextField(blank=False, null=False)
  contact = models.Foreignkey(Contact,on_delete=models.CASCADE)      
  def __str__(self):
     return "%s" % self.company_name

一旦查看外键和模型的文档以获取更多信息@https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_one/

【讨论】:

    最近更新 更多