0

我有两个这样的简单模型:

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(外键)插入数据库,以便以后可以检索以供我使用。我怎样才能做到这一点?

4

2 回答 2

1

如果您尝试将数据添加到多对多关系,则必须使用该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()
于 2013-01-08T07:49:43.793 回答
0

根据我从您的问题中了解到的情况,您可能需要参考文档的外键部分。 https://docs.djangoproject.com/en/dev/ref/models/fields/

例如:manufacturer = models.ForeignKey('Manufacturer')

于 2013-01-08T07:39:06.687 回答