【问题标题】:Django : how to extract items of another table from one table if they are related by foreign keyDjango:如果它们通过外键相关,如何从一个表中提取另一个表的项目
【发布时间】:2017-12-03 12:55:04
【问题描述】:

我有两个表:UserDetails(包括书籍的详细信息)。它们通过外键相互链接,如下所示:

class Details(models.Model):
    user= models.ForeignKey(settings.AUTH_USER_MODEL, null=True)
    BName= models.CharField(max_length=200)
    BPublisher= models.CharField(max_length=200)
    BEdition= models.CharField(max_length=100)
    BAuthor= models.CharField(max_length=200)
    BClass= models.CharField(max_length=100)

现在我需要从不同用户发布的表格详细信息中提取所有书籍。我怎样才能做到这一点 ? Filed in Django admin 看起来像:enter image description here

【问题讨论】:

    标签: python django django-models foreign-keys


    【解决方案1】:

    您可以在视图函数中这样做:

    def get_book_set(request):
       user_instance = request.user
       book_set = Details.objects.filter(user = user_instance)
       context = {'user':user_instance, 'book_set':book_set}
       return render(request, 'template_file.html', context)
    

    【讨论】:

      【解决方案2】:

       u = User.objects.get(id=your_id)
      

      你可以通过django反向关系获取用户u的书籍:

      book_set = u.details_set.all()
      

      您可以更改模型中的默认相关名称 details_set (ModelName_set):

      user= models.ForeignKey(settings.AUTH_USER_MODEL, null=True, related_name='book')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-04
        • 2021-12-16
        • 2022-01-22
        • 2021-09-16
        • 1970-01-01
        • 2012-05-02
        相关资源
        最近更新 更多