我对使用ForeignKeys从另一个模型获取数据有疑问。我有一个模型的推销员
class Salesman(models.Model):
name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
store = models.ForeignKey(Store, on_delete=models.CASCADE)
def __str__(self):
return "%s" % (self.name)
商店型号
class Store (models.Model):
name= models.CharField(max_length=50)
phone = models.IntegerField()
contactMail = models.EmailField()
def __str__(self):
return "%s" % (self.name)
和产品型号
class Product (models.Model):
name = models.CharField(max_length=40)
description = models.CharField(max_length=150)
price = models.CharField(max_length=7)
store = models.ManyToManyField(Store)
def __str__(self):
return "%s" % (self.name)
我试图通过推销员获得商店的名称,因为以后我需要在商店中获取关联的产品,并且我想使用相同的过程或类似的方法在该特定商店中用产品填充HTML表。
我已经在一家名为LeBlanc的商店里找到了一个叫JohnSmith的推销员。铅笔和书籍是LeBlanc中关联的产品
我认为:
def load_store(request):
salesDude = Salesman.objects.filter(name='JohnSmith')
print(salesDude)
// <QuerySet [<Salesman: JohnSmith>]> <- gotcha
然后,我尝试使用Salesman对象从商店中检索ID,但是我被困在这里。向前,我需要恢复商店的名称,并用作过滤器来检索商店中的产品。
我该如何实现?我只得到ID而不是名字。任何帮助将不胜感激。
答案 0 :(得分:1)
尝试:
def load_store(request):
salesDude = Salesman.objects.filter(name='JohnSmith')
print (salesDude)
store = salesDude.store
print (store)
products = Product.objects.filter(store=store.name)
print (products)
您是否需要商店的ID或名称,都应该能够使用salesDude.store.id或salesDude.store.name进行检索。