Python:如何在我的Django模板中传递外键的值? |
您所在的位置:网站首页 › eclipse如何创建spring项目 › Python:如何在我的Django模板中传递外键的值? |
1> Tiny Instanc..: 如果我理解正确,目标是能够在帖子上列出相关的投标人/出价?如果是这样,那么你可以使用select_related(如果你选择从独生子女父母)的prefetch_related(如果你正在做一个反向查找) 1)首先,在您的投标模型中,更好的related_name是"出价",就像这样; post = models.ForeignKey(Post, default=1, related_name='bids' )2)其次在内部def live_bid_truck(request):进行这样的post查询,这样你就可以在一个数据库中获取所有相关对象. Post.objects.all().prefetch_related('bids')3)然后在您的模板中,您可以使用可以访问帖子的相关出价 {% for bid in post.bids.all %} // In your case post is obj {{ bid }} // Access whatever you need from the bid like {{ bid.user }} {% endfor %}post.bids.all即使没有预取也只需遵循向后关系即可调用和接收值.如果您没有获得任何值,那么您可能没有正确设置它们.prefetch_related随着帖子数量的增加,有助于提高表现. 来自您的代码 在你BidForm的没有参考post,我不知道你是否在自定义save()方法中有它.保存此表单时,post_id将是默认值1 # NO REFENCE TO post class BidForm(forms.ModelForm): class Meta: model = Bid fields = ["amount"]同样在你的view你也不设置帖子. def live_bid_truck(request): form = BidForm(request.POST or None) if form.is_valid(): bid = form.save(commit=False) print(form.cleaned_data.get("amount")) bid.user = request.user # YOU SET THE USER bid.post = ?? # YOU DON'T SET THE POST HERE EITHER, # SO ALL YOUR BIDS HAVE THE DEFAULT POST id = 1 # DO YOU ACTUALLY HAVE POST with id = 1? bid.save() # WHAT HAPPENS IF YOU PRINT BID POST ID HERE ?? # CHECK HERE IF YOU REALLY HAVE THE RELATED POST ID. print(bid.post.id) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |