我有两个通过外键连接的模型。
Book
isbn - this is a unique value
Order
book_isbn - this should refer to Book's isbn above.
答案 0 :(得分:0)
你可以做像
这样的模特class Book(models.Model):
isbn = models.CharField(unique=True, primary_key=True, max_length=5)
#some fields....
class Order(models.Model):
book = models.ForeignKey(Book, related_name='orders')
#another fields..
然后你可以做像
这样的查询given_isbn = 'some_value'
items = Order.objects.filter(book=given_isbn)
或者对于给定的图书实例,
orders = book.orders.all()
修改强>
或者您可以从Book model isbn字段中删除primary_key=True
并执行此操作
像
items = Order.objects.filter(book__isbn=given_isbn)
然后,Django为每个对象实例提供一个自动递增的主键。
答案 1 :(得分:0)
型号:
class Book(models.Model):
isbn = models.CharField(primary_key=True, max_length=5)
class Order(models.Model):
book = models.ForeignKey(Book)
#another fields..
获取您想要的书。
book = Book.objects.get(isbn=isbn)
获得相关的书籍订单。
orders = book.order_set.all()
它将返回特定图书的所有订单。
另一种方法:通过过滤查询简单过滤所有记录。
order_qs = Order.objects.filter(book=book)
谢谢。