首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django管理中的外键表单字段

django管理中的外键表单字段
EN

Stack Overflow用户
提问于 2011-11-25 22:54:00
回答 2查看 1.9K关注 0票数 1

我想调整我的基于django管理的应用程序,使其更加用户友好。

Add offer page

当用户为已经在系统中注册的客户端创建报价时,以下管理页面是很好的。但如果客户是新客户,则用户必须单击+并在弹出窗口中提交“添加新客户”表单。这太让人困惑了。

如何更改此行为,以便在同一页上使用内联而不是在弹出窗口中填写客户数据?

这是我的admin.py。

代码语言:javascript
运行
复制
class OptionOffer(admin.ModelAdmin):
   fieldsets = (('', {'fields': (('client'), 'startDate', 'regNumber')}),)

class OptionClient(admin.ModelAdmin):
   fieldsets = (('', {'fields': ('code')}),)

和model.py

代码语言:javascript
运行
复制
class Client(models.Model):
    code = models.CharField(verbose_name=_("Code"), max_length=11)

class Offer(models.Model):
    client = models.ForeignKey(Client, verbose_name = _("Client"))
    startDate = models.DateTimeField(verbose_name = _("Start date"))
    regNumber = models.CharField(verbose_name=_("Registration number"), max_length=6)
EN

回答 2

Stack Overflow用户

发布于 2011-11-27 21:02:28

您可以使用诸如jQuery之类的Javascript框架,并使用iframe或类似工具将弹出窗口加载到编辑页面中。或者使用一些lightbox风格的弹出窗口,而不是Django标准弹出窗口。

票数 1
EN

Stack Overflow用户

发布于 2011-11-26 00:17:12

如果不对django管理员进行一些严重的黑客攻击,您将无法获得更好的解决方案。您可能会遇到(或被指向) InlineModelFormsets,它在当前表单的底部提供一个表单,允许您以内联方式添加客户端。虽然这看起来像是您需要的,但您很快就会发现它并不适合您的用例,因为它需要从客户端到报价的外键关系,而不是您所拥有的从报价到客户端的ForeignKey关系

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8270795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档