程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了多个 QuerySet 到另一个模型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决多个 QuerySet 到另一个模型?

开发过程中遇到多个 QuerySet 到另一个模型的问题如何解决?下面主要结合日常开发的经验,给出你关于多个 QuerySet 到另一个模型的解决方法建议,希望对你解决多个 QuerySet 到另一个模型有所启发或帮助;

我正在编写以下代码来使用 Django ninja 框架搜索配置文件模型中的类别,如果我只检索配置文件中的字段,所有查询都返回,但是当我需要从用户模型中获取用户名时,只返回一条记录来自循环。

profile.py

class Profile(models.Model):
    serviCEPROVIDER = 'service_provIDer'
    CUSTOMER = 'customer'
    user = models.OnetoOneFIEld(User,on_delete=models.CASCADE,related_name='profile')
    conf_password = models.CharFIEld(max_length= 124)
    category =  models.CharFIEld(max_length= 80,blank=True,null=TruE)
    click = models.IntegerFIEld(blank=True,default=0)
    date_clicked = models.datetiR_289_11845@eFIEld(auto_Now_add=True,null=TruE)
    image_path = models.ImageFIEld(upload_to='user_uploads/',blank=TruE)
    role = models.CharFIEld(max_length=100,choices=[
        (serviCEPROVIDER,serviCEPROVIDER),(CUSTOMER,CUSTOMER),])
    
    profile_info = models.JsONFIEld(blank=True,null=TruE)

    def __str__(self):
        return f'{self.user.usernamE}'

auth.py

@auth.get("/search/{Category}",auth=None,response={200: searchscheR_289_11845@aout,404: messageOut})
def search(request,category:str):
    profile = Profile.objects.filter(category__icontains=category).values()
    for i in range(len(profilE)):
        user = get_object_or_404(User,ID=profile[i]['ID'])
        return 200,{
            "user": user,"profile": profile[i]
        }

auth.py 架构

class UserscheR_289_11845@aOut(scheR_289_11845@a):
    username: str
    
class profilescheR_289_11845@aout(scheR_289_11845@a):
    role: str
    category: str  

class searchscheR_289_11845@aout(scheR_289_11845@a): 
    user: UserscheR_289_11845@aOut
    profile: profilescheR_289_11845@aout

结果:

{
  "user": {
    "username": "ahmed"
  },"profile": {
    "role": "service_provIDer","category": "doors"
  }
}

解决方法

我找到了解决方案,也许对某人有帮助

@offices.get("/{Category}/{user_iD}",auth=None,response={200: List[searchscheR_289_11845@aout],404: messageOut})
def category(request,category:str):
    
    cat_qs = Profile.objects.all().filter(category__icontains=category)
    if cat_qs:
        return cat_qs
    else:
       return 404,{'message': 'This category not found.'} 
    

架构:

class UserscheR_289_11845@aOut(scheR_289_11845@a):
    pk: int
    username: str
    
class searchscheR_289_11845@aout(scheR_289_11845@a): 
    user: UserscheR_289_11845@aOut
    category: str 
    image_path : str 
    role: str
    address: str

大佬总结

以上是大佬教程为你收集整理的多个 QuerySet 到另一个模型全部内容,希望文章能够帮你解决多个 QuerySet 到另一个模型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。