我有两个这样的简单模型:
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(外键)插入数据库,以便我可以稍后检索以供我使用。我怎么能这样做?
答案 0 :(得分:1)
如果您尝试向ManyToMany Relationships添加数据,则必须使用through
选项定义连接表。 Read here了解更多信息。
但是,请注意,您不应该保存会话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()
答案 1 :(得分:0)
根据我对您的问题的理解,您可能需要参考文档的外键部分。 https://docs.djangoproject.com/en/dev/ref/models/fields/
e.g: manufacturer = models.ForeignKey('制造商')