[英]Foreign key not shown with Many to Many Relationship in Django?
我有两个简单的模型,如下所示:
class User(models.Model):
username = models.CharField(max_length=100) #Id is automatically generated by Django
password = models.CharField(max_length=100)
def __unicode__(self):
return self.username
class File(models.Model):
users = models.ManyToManyField(User)
file_name = models.CharField(max_length=100)
type = models.CharField(max_length=10)
根据数据库规则,创建桥实体(表)。 我想知道的是在插入数据时,我想使用session_id(外键)插入数据库,以便以后可以检索以供使用。 我怎样才能做到这一点?
如果您尝试将数据添加到ManyToMany Relationships,则必须使用through
选项定义联接表。 在这里阅读更多信息。
请注意,但是,您不应该保存会话ID-您要实现什么目标? 原因是用户将不会总是具有相同的sessionID,并且与该会话关联的数据(即request.session [*])可能会被删除。
无论如何,一个例子看起来像这样
class User(models.Model):
username = models.CharField(max_length=100) #Id is automatically generated by Django
password = models.CharField(max_length=100)
def __unicode__(self):
return self.username
class File(models.Model):
users = models.ManyToManyField(User, through='UserFile')
file_name = models.CharField(max_length=100)
type = models.CharField(max_length=10)
class UserFile(models.Model):
user = models.ForeignKey(User)
file = models.ForeignKey(File)
# Should probably use CharField if you know the length
session_id = models.TextField()
根据您对问题的了解,您可能需要参考文档的外键部分。 https://docs.djangoproject.com/en/dev/ref/models/fields/
例如:制造商=模型。ForeignKey('制造商')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.