Models.py
class tag_table(models.Model):
tag_id = models.IntegerField(unique=True)
book_tag = models.CharField(max_length=50,primary_key=True)
def __unicode__(self):
return self.book_tag
class Book(models.Model):
book_id = models.IntegerField(primary_key = True)
book_author = models.CharField(max_length=50,default='')
book_tag = models.ForeignKey(tag_table ,on_delete=models.CASCADE,default='')
def __unicode__(self):
return (self.book_author,self.book_tag)
我在交互式shell(django)中使用查询
Book.objects.all()[0] .book_tag
Traceback(最近一次调用最后一次): 文件"",第1行,in 文件" C:\ Python27 \ lib \ site-packages \ django-1.10.3-py2.7.egg \ django \ db \ models \ fields \ related_descriptors.py",第1行 在获取 rel_obj = qs.get() 文件" C:\ Python27 \ lib \ site-packages \ django-1.10.3-py2.7.egg \ django \ db \ models \ query.py",第385行,获取 self.model._meta.object_name DoesNotExist:tag_table匹配查询不存在。
如何访问外键" book_tag"通过使用模型的对象列表" Book"
答案 0 :(得分:1)
您的数据库架构不正确,因为您在Django中使用MVC,因此您不需要手动关联数据库中的表,因为它已过时且有点困难。
这是您的假设模型,我希望它可以提供帮助
class Book(models.Model):
author = models.ForeignKey(Author)
tags = models.ForeignKey(Book_Tags)
def __unicode__(self): ###__str__() in python3
return self.author.name
您可以在编写代码时使用Django web Site。它非常有用
例如,为了编写模型,请从here
获取帮助