1
我想構建一個消息應用程序。django在另一個模型中定義之前使用模型
型號:
class Thread(models.Model):
subject = models.CharField(max_length=255, blank=True, null=True)
user = models.ManyToManyField(User, related_name='thread_set')
def thread_creator(self):
return self.message_set.first().sender
class Message(models.Model):
thread = models.ForeignKey(Thread, related_name='message_set', blank=True, null=True)
pub_date = models.DateTimeField(default=timezone.now)
sender = models.ForeignKey(User)
body = models.TextField()
所以,當發送一個消息,將創建一個新的線程。那第一條消息將與該線程有一個外鍵關係。所以,發送到這個線程的任何其他消息將與該線程具有外鍵關係。這工作正常。
但是,假設我想添加對特定消息的回覆。所以現在,它應該爲該消息創建一個新線程,並且一條消息只能有一個線程(它將保存其他的回覆消息)。這使新線程與該消息成爲一對一的關係。
於是,我改變了線程模型這樣:
class Thread(models.Model):
subject = models.CharField(max_length=255, blank=True, null=True)
user = models.ManyToManyField(User, related_name='thread_set')
message = models.OneToOneField(Message, blank=True, null=True)
但是,因爲消息模型還沒有定義,它給我的錯誤:
NameError: name 'Message' is not defined
如何使用類模型在定義之前?還是有其他解決問題的方法嗎?
是啊!就是這樣。謝謝。 – Kakar
不客氣 –