我有這些模型:動態極限選擇爲外鍵
class UserProfile(models.Model):
name = models.CharField(max_length=100)
class Dialog(models.Model):
belong_to = models.ManyToManyField(UserProfile)
class Message(models.Model):
# Dialog to which this message belongs
part_of = models.ForeignKey(Dialog)
# User who sends message
sender = models.ForeignKey(UserProfile, related_name='sender')
# User who receives message
receiver = models.ForeignKey(UserProfile, related_name='receiver')
我想要做的是限制發送者和接收者領域的選擇,使他們只能是整個對話所屬的用戶。 我嘗試這樣做:
sender = models.ForeignKey(UserProfile,
related_name='sender',
limit_choices_to={'dialog':1})
這限制了選擇,但僅用於與ID = 1對話框的成員。我想知道這是否可以動態完成?
這個想法是不可接受的,因爲每個消息的發送者 - 接收者是不同的。當我發佈內容時 - 我是發件人,你是收件人,反之亦然。因此,在同一個對話框中,發送者 - 接收者可能會改變 – wasd 2015-03-25 13:07:34