我想使用djang中的子模型对象访问父模型字段

2024-05-21 05:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我在Django项目中有一个问题。 首先,你可以看到我有两个Django模型名为BookSeller和Book

书商模型

class BookSeller(models.Model):
    user_name = models.CharField(max_length=200)
    user_email = models.CharField(max_length=200)
    user_password = models.CharField(max_length=200)
    user_phone = models.CharField(max_length=100)
    user_photo = models.ImageField(upload_to='book/seller_photos/%Y/%m/%d/', blank=True)
    user_address = models.CharField(max_length=300)
    user_state = models.CharField(max_length=100)
    user_city = models.CharField(max_length=100)

    def __str__(self):
        return self.user_name

书本模型

class Book(models.Model):
    book_owner = models.ForeignKey(BookSeller, related_name='book_seller', on_delete=models.CASCADE)
    book_category = models.CharField(max_length=200) 
    book_title = models.CharField(max_length=200)
    book_price = models.IntegerField()
    book_edition = models.CharField(max_length=200)
    book_author = models.CharField(max_length=200)
    book_old = models.IntegerField()
    book_page = models.IntegerField()
    book_description = models.TextField(max_length=200)
    book_image_1 = models.ImageField(upload_to='book/book_photos/%Y/%m/%d', blank=True)
    book_image_2 = models.ImageField(upload_to='book/book_photos/%Y/%m/%d', blank=True)
    book_image_3 = models.ImageField(upload_to='book/book_photos/%Y/%m/%d', blank=True)
    book_image_4 = models.ImageField(upload_to='book/book_photos/%Y/%m/%d', blank=True)

    def __str__(self):
        return self.book_title

想做的事:在我的项目中,我想找到那个书商所在城市的书。 例如,如果我在搜索栏中写下城市名称“硅谷”,那么它应该会显示属于硅谷的卖家(书商)的所有“书”。你知道吗

查询:所以我的查询是如何执行Django查询集,因为我找不到任何可以执行此任务的查询。你知道吗

如果你们有任何其他的解决方案,请建议我!!!你知道吗


Tags: todjangoimageselftruemodelslengthmax
3条回答

您还可以使用q查询,在这种情况下,您可以在查询中添加更多字段。你知道吗

queryset = Book.objects.filter(Q(book_owner__user_city__icontains=query)|
    .................)

你可以通过以下方法得到想要的结果

books_by_seller_city = Book.objects.filter(book_owner__user_city='Silicon Valley')

注意__的用法,它告诉ORM查看引用的模型属性。你知道吗

你可以这样做

Book.objects.filter(book_owner__user_city="Silicon Valley")

你还可以学到更多关于各种各样的加入 this link

相关问题 更多 >