我创建一个小的聊天应用程序,我必须在管理员制作,因为下拉为Messagemie
模型场chat
的消息问题的选择。请注意,下图中没有显示与Conversation
型号相关的所需值。 Conversation
模型中的conversation
字段所接受的值是“number-number”的形式,例如, 5-10
,11-21
等。注意,我已经创建未如下所示的转换这样的输入格式非Django管理输入字符串(当用户启动一个新的会话)的机制。Django管理不显示为外键字段
的conversation
字段是CharField
类型。我怀疑为什么Django管理员表单不显示所需的值是因为field
类型,但我不确定。也可能是因为Django管理员没有将输入转换为字符串,因此在下拉菜单中只显示Conversation object
。为什么Django管理员不会为chat
输入字段显示正确的值?
@python_2_unicode_compatible
class Conversation(models.Model):
conversation = models.CharField(unique=True, max_length=150)
email_1 = models.ForeignKey(Usermie, to_field="email", related_name="email_1_convo")
email_2 = models.ForeignKey(Usermie, to_field="email", related_name="email_2_convo")
@python_2_unicode_compatible
class Messagemie(models.Model):
sender = models.ForeignKey(Usermie, to_field="email", related_name="email_sender")
receiver = models.ForeignKey(Usermie, to_field="email", related_name="email_receiver")
# The username is the sender's username
sender_username = models.CharField(max_length=50)
receiver_username = models.CharField(max_length=50)
message = models.TextField()
chat = models.ForeignKey(Conversation, to_field="conversation", related_name="conversation_chat")
图片表示Messagemie模型chat
场选择在管理员输入值的
非常感谢您的回答!你的回答也回答下一个问题。我使用奇怪为什么人们使用'__str__'方法,当你可以使用任何方法并输出你想要的任何东西作为简单地使用'%s'时。非常感谢! – Jam1
很高兴能帮到你! –