开发者

Django Match ForeignKey from ModelChoiceField to MySQL

I have a ModelChoiceField called outage_name. I also have a simple form that allows you to select the item from the list. The ModelChoiceField is pulled from a MySQL DB. This queryset is located in forms.py

outage_name = forms.ModelChoiceField(queryset = Outage.objects.filter(published = True)

The models.py is listed below.

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

When I select from the list and submit the form I can't seem to figure out how to match outage = models.ForeignKey(Outage) that was selected on the list. To the correct outage_name. In my views.py I can hard code the id and it submits to the database and everything works fine.

def turnover_form(request):
    if 开发者_Go百科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/')

Any advice on how to match the id with the selected item would be appreciated. I'm sure my code is not very pythonic as I'm still learning.


outage = form.cleaned_data['outage'] # cleaned_data['outage'] is a model instance
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜