Python 如何在两个不同的模型中插入数据?

Python 如何在两个不同的模型中插入数据?,python,django,django-models,Python,Django,Django Models,我是编码新手,我正在尝试我的第一个Django应用程序 这次我有三个不同的模型,但是在我点击Save的时候,有一个表单,我想保存该表单模型和其他两个模型的数据 所以在我的展示中,我想循环其他两个模型来展示我所拥有的 这可能吗 models.py class Personame(models.Model): name = models.CharField(max_length=128) def __str__(self): return self.name cla

我是编码新手,我正在尝试我的第一个Django应用程序

这次我有三个不同的模型,但是在我点击
Save
的时候,有一个
表单
,我想保存该表单模型和其他两个模型的数据

所以在我的展示中,我想循环其他两个模型来展示我所拥有的

这可能吗

models.py

class Personame(models.Model):
    name = models.CharField(max_length=128)
    def __str__(self):
        return self.name

class Personlastname(models.Model):
    last_name = models.CharField(max_length=128)
    def __str__(self):
        return self.last_name


class Personinfo(models.Model):
    personame = models.CharField(max_length=128)
    personlastname = models.CharField(max_length=128)
    address = models.TextField()
    phone_number = models.CharField(max_length=128)
    hobbies =models.CharField(max_length=128)

    def __str__(self):
        return self.personame
forms.py:

class personform(forms.ModelForm):
    personame = forms.CharField(label = "Name")
    personlastname = forms.CharField(label = "Last Name")
    class Meta:
        model = Personinfo
        fields = ["personame","personlastname","address","phone_number","hobbies"]
views.py:

def index(request):
    queryset = Personame.objects.all()
    queryset2 = Personlastname.objects.all()
    qs = chain(queryset,queryset2)
    form = personform(request.POST or None)
    context = {
    "qs": qs,
    "form":form,
    }
    if form.is_valid():
        instance = form.save()
    return render(request, "index.html", context)
index.html:

<form method="POST" action="">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save!" />
</form>

            <table >
             <tr>
                <th>Name</th>
                <th>Last Name</th>

            </tr>
            {% for item in qs  %}
            <tr> 
                <td>{{ item.name }}</td>
                <td>{{ item.last_name }}</td> 
            </tr>
            {% endfor %}
            </table>
{%csrf\u令牌%}
{{form.as_p}}
名称
姓
{qs%中项目的%s}
{{item.name}
{{item.last_name}
{%endfor%}
基本上我想在
Personinfo
Personame
中保存
name
,我想在
Personinfo
Personlastname
中保存
last name
。所以我可以在模板中显示
Personame
Personlastname

有人能帮我吗


我将非常高兴你的帮助谢谢

嗯,你的模型一点意义都没有。它们真的应该是一个模型。您尚未定义任何模型之间的任何关系。为此,您必须添加OneToOneField或ForeignKey。这实际上意味着每个数据项都有一个额外的列。完全多余

class Personinfo(models.Model):
    name = models.CharField(max_length=128)
    last_name = models.CharField(max_length=128)
    address = models.TextField()
    phone_number = models.CharField(max_length=128)
    hobbies =models.CharField(max_length=128)

    def __str__(self):
        return self.personame

这使得您的生活更加简单,编码更加简单。

您的模型没有类Meta,需要在类Meta中定义表名,如:

class Meta: 
   managed = True
   db_table = 'tableName'

然后你需要覆盖personform中的save函数

我需要3个不同的模型,一个用于表单,另一个用于在模板中显示。这就是为什么我想从一个表单中插入多个表。