首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django匹配ForeignKey从ModelChoiceField到MySQL

Django匹配ForeignKey从ModelChoiceField到MySQL
EN

Stack Overflow用户
提问于 2011-09-26 00:31:58
回答 1查看 153关注 0票数 1

我有一个叫ModelChoiceField的outage_name。我还有一个简单的表单,允许您从列表中选择项目。ModelChoiceField是从MySQL DB中提取的。此查询集位于forms.py中。

代码语言:javascript
复制
outage_name = forms.ModelChoiceField(queryset = Outage.objects.filter(published = True)

下面列出了models.py。

代码语言:javascript
复制
from django.db import models
from django.contrib.auth.models import User

class Outage(models.Model):
    outage_name = models.CharField(max_length=60, unique=True)
    published = models.BooleanField()
    def __unicode__(self):
        return self.outage_name

class Detail(models.Model):
    detail = models.CharField(max_length=60, unique=True)
    user = models.ForeignKey(User)
    outage = models.ForeignKey(Outage)
    def __unicode__(self):
        return self.outage

当我从列表中选择并提交表单时,我似乎找不出如何匹配列表上选择的中断=models.ForeignKey(中断)。到正确的outage_name。在我的views.py中,我可以对id进行硬编码,并将其提交到数据库中,一切都正常。

代码语言:javascript
复制
def turnover_form(request):
    if request.user.is_authenticated():
        if request.method == 'POST':
            form = TurnoverForm(request.POST)
            if form.is_valid():         
                details = Detail.objects.get_or_create(
                    detail  = form.cleaned_data['detail'],
                    user = request.user,
                    outage = Outage.objects.get(pk=1))
            return HttpResponseRedirect('/turnover/user/')
        else:
            form = TurnoverForm()
        variables = RequestContext(request, {'form': form})
        return render_to_response('turnover_form.html', variables)
    else:
        return HttpResponseRedirect('/authorization/')

任何关于如何将id与所选项目匹配的建议将不胜感激。我确信我的代码并不是非常节奏曲,因为我还在学习。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-26 01:52:00

代码语言:javascript
复制
outage = form.cleaned_data['outage'] # cleaned_data['outage'] is a model instance
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7549597

复制
相关文章

相似问题

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