django从没有外键的多个表中筛选数据

django从没有外键的多个表中筛选数据,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,model.py views.py 我在应用过滤器时面临问题,因为在任务、通道和软件之间没有外键。 但是,这些表之间有一个公共字段。请建议如何根据渠道表---列类型、显示名称和Tas表---列日期在销售表中应用过滤器 在Ware模型等中从taserid创建ForeignKey不是更有意义吗?如果有一个公共字段,您可以在JOIN和WHERE操作中使用它。外键只是数据库管理系统的一个助手,它强制执行值约束并通常建立索引。您尝试执行的操作完全不需要。请建议如何根据Channel表---列类型、disp

model.py

views.py

我在应用过滤器时面临问题,因为在任务、通道和软件之间没有外键。
但是,这些表之间有一个公共字段。请建议如何根据渠道表---列类型、显示名称和Tas表---列日期在销售表中应用过滤器


Ware
模型等中从
taserid
创建
ForeignKey
不是更有意义吗?如果有一个公共字段,您可以在
JOIN
WHERE
操作中使用它。外键只是数据库管理系统的一个助手,它强制执行值约束并通常建立索引。您尝试执行的操作完全不需要。请建议如何根据Channel表---列类型、displayname和Tas表---列日期在sales表中应用筛选器
class Tas(models.Model):
tas_id = models.AutoField(primary_key=True)
date = models.DateTimeField(blank=True,null=True)
ware_id = models.IntegerField(blank=True, null=True) 
taserid = models.CharField(max_length=100, blank=True, null=True)   
class Channels(models.Model):
taserid = models.CharField(max_length=255, blank=True, null=True) 
type = models.CharField(max_length=255, blank=True, null=True)
displayname = models.CharField(max_length=100, blank=True, null=True) 
class Ware(models.Model):
ware_id = models.AutoField(primary_key=True)
ware_name = models.CharField(null = False,max_length=255)
taserid = models.CharField(null = True, max_length=255)
def index(request):
assert isinstance(request,HttpRequest)
display = Tas.objects.all(),
cursor = connection.cursor()
cursor.execute("select es.date,ew.ware_name,ec.type,ec.displayName from tas as es inner join
ware as ew on ew.ware_id = es.ware_id inner join channels as ec on ec.taserId = es.taserId")