这可能是一个蹩脚的问题,但我如何使用主键作为属性的默认值?
这是我的models.py:
class Thread(models.Model):
thread_pk = models.PositiveIntegerField(default=self.pk)
这给了我一个错误:
自我未定义
如何将pk用作属性?任何帮助将不胜感激。谢谢。
修改
我需要在另一个班级Thread
中使用ForeignKey
班级作为Message
。所以我需要一个具有每个线程默认值的属性。
修改
class ThreadParticipant(models.Model):
thread = models.ForeignKey(Thread)
user = models.ForeignKey(User)
class Message(models.Model):
thread = models.ForeignKey(Thread)
sent_date = models.DateTimeField(default=datetime.now)
body = models.TextField()
user = models.ForeignKey(User)
class MessageReadState(models.Model):
message = models.ForeignKey(Message)
user = models.ForeignKey(User)
read_date = models.DateTimeField()
答案 0 :(得分:0)
你真的不需要这个thread_pk = models.PositiveIntegerField(default=self.pk)
行来使你的ForeignKey工作。
这部分代码:
class Message(models.Model):
thread = models.ForeignKey(Thread)
完全没问题,你似乎不需要任何其他东西。
以下是关于Django中FK用法的参考:link
但如果您不需要Thread
模型中的其他字段 - 那么只需放置以下内容:
id = models.AutoField(primary_key=True)
这是必要的,因为否则syncdb
将不会为该模型创建表。
文档:link