【问题标题】:how to solve django-query如何解决django查询
【发布时间】:2020-11-07 21:50:31
【问题描述】:
class Userdata(models.Model):
    Username=models.CharField(max_length=20)
    Email=models.EmailField(unique=True,primary_key=True)
    Password1=models.CharField(max_length=20)
    Password2=models.CharField(max_length=20)
    City=models.CharField(max_length=50)
    def __str__(self):
        return self.Email

class publish(models.Model):
    Userid=models.ForeignKey(Userdata,on_delete=models.CASCADE)
    tittle=models.CharField(max_length=20)
    contend=models.TextField(max_length=20000)
    def __str__(self):
        return self.tittle

如何找到发布更多竞争数量的前 3 位发布商以及他们的电子邮件(查询)

【问题讨论】:

    标签: django django-models django-views django-queryset


    【解决方案1】:

    由于我不知道您的contend 是如何排序的,您可能需要尝试这两个(这两个是完全相反的:第一个是前三个,第二个是后三个):

    qs = publish.objects.order_by('contend')[:3]
    qs = publish.objects.order_by('contend')[-3:]
    

    那么你就会有一个列表。然后,您可以通过

    检索电子邮件
    for i in range(3):
        user = Userdata.objects.get(pk=qs[i].Userid)
        email = user.Email
    
    # if you want a list:
    emails = [Userdata.objects.get(pk=qs[i].Userid).Email for i in range(3)]
    

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 2021-12-26
      • 2019-09-22
      相关资源
      最近更新 更多