繁体   English   中英

在 Django 中使用表单时如何将对象添加到不同的模型?

[英]How to add objects to a different model when using a form in Django?

我有一些通过外键检索对象的表单,例如FlightTrip

因此,例如,当有人尝试创建新的Trip ,他们可以从下拉列表中选择一家Hotel

我的问题是:我们如何才能在Trip表单上添加一个Hotel 就像使用 Django 自己的管理仪表板时一样,在那里您会得到一个加号,您可以在创建Trip同时添加一个新的Hotel

编辑:

HotelTrip模型上的一个外键。 我正在使用ModelForm

目标是您可以在创建Trip选择现有Hotel或创建新Hotel

我认为您正在寻找forms.ModelChoiceField
它是这样使用的:

hotel = forms.ModelChoiceField(
    queryset=Hotel.objects.all() # or whatever queryset you want to use
    # Rest of the configuration
)

如果我没记错的话,它会创建一个 Html Select标签,其中包含以每个Hotel对象的pk作为值的选项。 要指定每个选项的内部文本,您必须为Hotel类定义以下方法:

def __str__(self):
    return self.name # or whatever needed


如果您确实在寻找这个,如果您正在构建生产级网站/应用程序,我必须劝阻您不要使用它。 更好(显然更精细)的方法是获取Hotels的查询集,将它们序列化为 JSON,为每个酒店创建一个卡片/行/小部件供用户搜索和选择。 但是,它是管理小型项目的一种快捷方便的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM