我的django项目使用django帮助台应用程序。
此应用程序具有Ticket
模型。在
我的应用程序有一个Client
模型,它应该与ticket有一对多的关系,所以我可以列出与特定客户端相关的所有票据。在
通常我会将models.ForeignKey(Client)
添加到Ticket
但这是一个外部应用程序,我不想修改它(将来的更新问题等等)。在
我对ManyToMany
或OneToOne
没有问题,但不知道如何使用ManyToOne
(从外部应用程序到我的应用程序的一个客户端有很多票证)
Tags:
更为老套的解决方案:您可以在
Client
类之后在模块级代码中执行以下操作:我还没有完全测试它(我没有进行任何实际的数据库迁移),但是正确的描述符(}用于{})被添加到类中,South识别新字段。到目前为止,它似乎像一个普通的
ReverseSingleRelatedObjectDescriptor
用于Ticket
和{ForeignKey
一样工作。在编辑:事实上,甚至没有那么老套。这正是Django跨类设置外键的方式。它只是通过在构建反向相关类时添加字段来反转过程。如果两个模型上的任何原始字段都被隐藏,则不会引发错误。只要确保你没有这样做,因为它可能会破坏你的代码。除此之外,我认为不应该有任何问题。在
至少有两种方法可以实现:
更优雅的解决方案:使用一个与
Ticket
有一对一关系的TicketProfile
类,并将Client
外键放入其中。在Hacky solution:使用多对多关系,手动编辑自动创建的表并使
ticket_id
唯一。在相关问题 更多 >
编程相关推荐