我是编码新手,正在尝试我的第一个 Django 应用程序。
这次我有三个不同的模型,但是当我点击保存
时只有一个表单
,我想保存该表单模型和其他表单模型上的数据2 个型号。
因此,在我的显示器中,我想循环其他两个模型以显示我所拥有的内容。
这可能吗?
模型.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
表单.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>
基本上我想将name
保存在Personinfo
和Personname
中,并且我想将last_name
保存在Personinfo
和Personlastname
。所以我可以在模板中显示 Personname
和 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
通过更简单的编码,您的生活变得更加轻松。
关于python - 如何在两个不同的模型中插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41711727/