Python DJANGO在类似sql的联接中获取对象
Context:我正在强迫自己学习django,我已经写了一个基于php的小网站,所以我基本上是通过移植页面和函数来学习django的工作原理。 我有两种型号Python DJANGO在类似sql的联接中获取对象,python,python-3.x,django,django-models,Python,Python 3.x,Django,Django Models,Context:我正在强迫自己学习django,我已经写了一个基于php的小网站,所以我基本上是通过移植页面和函数来学习django的工作原理。 我有两种型号 from django.db import models class Site(models.Model): name = models.CharField(max_length=50, unique=True) def __str__(self): return self.name class Com
from django.db import models
class Site(models.Model):
name = models.CharField(max_length=50, unique=True)
def __str__(self):
return self.name
class Combo(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
dead = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
siteID = models.ForeignKey(Site, on_delete=models.PROTECT)
class Meta:
unique_together = ('username','siteID')
def __str__(self):
return f"{self.username}:{self.password}@{self.siteID.name}"
在创建视图时,我想获得组合对象
,但我想先按站点名称排序,然后按用户名排序
我试图创建视图,但在我可以排序的字段方面出现错误,无法将关键字“Site”解析为字段。选项包括:死亡、id、密码、站点id、站点id\u id、时间戳、用户名
def current(request):
current = Combo.objects.filter(dead=False).order_by('Site__name','username')
return render(request, 'passwords/current.html',{'current':current})
因为我不必按字母顺序将站点输入数据库,所以按siteID排序是没有用的。正在寻找一些帮助,以了解如何返回按站点名称对象然后按用户名排序的组合对象列表。您可以按
siteID\uu name
排序:
def current(request):
current = Combo.objects.filter(dead=False).order_by('siteID__name','username')
return render(request, 'passwords/current.html',{'current':current})
如果要为数据库列指定其他名称,可以使用以下命令指定:
类组合(models.Model):
# …
site=models.ForeignKey(
地点,
在_delete=models.PROTECT上,
db_column='siteID'
)
我觉得我试过那样做,但我一定是打错了什么。我能让它工作,谢谢。
class Combo(models.Model):
# …
site = models.ForeignKey(Site, on_delete=models.PROTECT)
class Combo(models.Model):
# …
site = models.ForeignKey(
Site,
on_delete=models.PROTECT,
db_column='siteID'
)