Python 如何在Django应用程序中连接两个mysql表
我的MySQL数据库中有两个表: 第一个表:用于订阅者(id、名称、区域、subscriberNumber、phoneNumber) 第二个表格:用于每月付款(id、订阅号、月、年、金额、折扣、罚款、账单号) 我有一个HTML页面,其中包含订阅者列表。每当管理员点击其中一个订阅服务器时,就会显示用户的详细信息。但目前我只能显示用户的详细信息(从第一个表)。我希望页面显示他/她全年支付的款项清单(从第二个表中)。我想连接这些表,并在一个HTML页面中显示这两个表的详细信息 这是在views.py中显示第一个表的数据的代码Python 如何在Django应用程序中连接两个mysql表,python,mysql,django,Python,Mysql,Django,我的MySQL数据库中有两个表: 第一个表:用于订阅者(id、名称、区域、subscriberNumber、phoneNumber) 第二个表格:用于每月付款(id、订阅号、月、年、金额、折扣、罚款、账单号) 我有一个HTML页面,其中包含订阅者列表。每当管理员点击其中一个订阅服务器时,就会显示用户的详细信息。但目前我只能显示用户的详细信息(从第一个表)。我希望页面显示他/她全年支付的款项清单(从第二个表中)。我想连接这些表,并在一个HTML页面中显示这两个表的详细信息 这是在views.py中
@login_required
def userDetail(request, id=None):
instance = get_object_or_404(Subscribers.objects.using('db2'), id=id)
context = {
"Name": instance.name,
"instance": instance,
}
return render(request, 'userDetail.html', context)
如何在同一页面上显示用户完成的付款及其详细信息
Models.py
from __future__ import unicode_literals
from django.db import models
from django.core.urlresolvers import reverse
class Subscribers(models.Model):
name = models.CharField(max_length=120)
area = models.CharField(max_length=30)
phoneNumber = models.CharField(max_length=10)
installationCost = models.CharField(max_length=10)
subsNumber = models.CharField(max_length=100)
def get_absolute_url(self):
return reverse("userDetail", kwargs={"id": self.id})
class Payments(models.Model):
month = models.CharField(max_length=120)
year = models.CharField(max_length=4)
amount = models.CharField(max_length=10)
discount = models.CharField(max_length=10)
fine = models.CharField(max_length=10)
billNumber = models.CharField(max_length=100)
subsNumber = models.CharField(max_length=100)
def get_absolute_url(self):
return reverse("userDetail", kwargs={"id": self.id})
要显示用户的付款,您可以使用:
instance = get_object_or_404(Subscribers.objects.using('db2'), id=id)
try:
payment_info = Payments.objects.using('db2').get(subsNumber=instance.subsNumber)
except Payments.DoesNotExist:
payment_info = None
context = {
"Name": instance.name,
"instance": instance,
"payment": payment_info
}
为什么要用这么多的困惑 改为这样做
instance = Subscribers.objects.using('db2').get(id=id)
payment_info = Payments.objects.using('db2').get(subsNumber=instance.subsNumber)
context = {
"Name": instance.name,
"instance": instance,
"payment": payment_info
}
你能发布
models.py
吗?我用models.py@arunadaForeignKey
编辑了这个问题,将它们链接起来。我怎样才能使用ForeignKey
。\u Cthulhu\u Kid你能帮我吗付款匹配查询不存在。
当我使用上述代码时会显示错误我正在关闭整个项目。请等一下。Mysql不工作。对不起,你以前的ans工作得很好。我不知道是什么问题。我重新启动了整个应用程序,它工作了。thanksI在前一段时间@Exprator做了这件事,但是出现了相同的错误付款匹配查询不存在。
告诉我两种型号的号码相同吗??如果它们不相同,则会出现错误,请尝试将数字更改为订阅者为某个用户提供的数字,然后为该订阅者提供该数字。请您在两个表中保留相同的子数字,或者您必须使用ForeignKey映射来帮助完成整个项目。请等一下。Mysql不工作。对不起,是的,成功了。我在两张桌子上都有号码。我不知道是什么问题,但它起了作用。谢谢兄弟