首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django eCommerce咨询

Django eCommerce咨询
EN

Stack Overflow用户
提问于 2014-08-14 11:47:49
回答 1查看 150关注 0票数 0

我正在阅读吉姆·贾戈( Jim )的“开始姜戈”( memory ECommerce),我正在尝试添加一个功能,让购买智能手机的消费者可以选择是否带着它的存储卡。我就是这样做的:

  1. 我为存储卡创建了一个模型
  2. 我把这个添加到购物车表单中 mem_8 =MemoryCard.objects.get(名称=‘8’) mem_16 =MemoryCard.objects.get(名称=‘16’) mem_32 =MemoryCard.objects.get(名称=‘32’)选择=(‘没有’,‘没有存储卡’),(mem_8,'8GB + 20$'),(mem_16,‘16 8GB+ 25$'),(mem_32,(‘32 30+ 30$') memory_card =memory_card={’class‘:’选择‘}))

此时,我得到一个完整性错误,即memory_card_id为空,而不能为空。

我的问题是,我是继续我的启动(如果是这样的话,对错误的任何建议将是好的),还是有更简单和容易的方法去做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 11:58:25

不,不是这样的。不能将模型对象用作select小部件中的ID属性。您绝对不应该在表单声明中执行get

相反,您应该使用一个ModelChoiceField,查询集指向MemoryCard模型:

代码语言:javascript
复制
memory_card = forms.ModelChoiceField(queryset=MemoryCard.objects.all())

如果您有更多不想在这里显示的存储卡选项,则可以缩小其范围:

代码语言:javascript
复制
memory_card = forms.ModelChoiceField(queryset=MemoryCard.objects.filter(name__in=['eight', 'sixteen', 'thirtytwo'])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25307315

复制
相关文章

相似问题

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