Note that there are some explanatory texts on larger screens.

plurals
  1. POFK not populating in django form
    primarykey
    data
    text
    <p>I have a small question to ask the community. I am wondering why my foreign key will not show up when I go to my edit form. When I go to edit the information, all my data is populated except for status (which is a foreignkey that points from the status table to project table), which is left with nothing selected. I use the same forms.py for both adding and editing information.</p> <p>models.py</p> <pre><code>from django.db import models from clients.models import Clients from django.contrib.auth.models import User from settings import STATUS_CHOICES class Project(models.Model): client = models.ForeignKey(Clients, related_name='projects') created_by = models.ForeignKey(User, related_name='created_by') #general information proj_name = models.CharField(max_length=255, verbose_name='Project Name') pre_quote = models.CharField(max_length=3,default='10-') quote = models.IntegerField(max_length=10, verbose_name='Quote #', unique=True) desc = models.TextField(verbose_name='Description') starts_on = models.DateField(verbose_name='Start Date') completed_on = models.DateField(verbose_name='Finished On') def __unicode__(self): return u'%s' % (self.proj_name) def current_status(self): try: return self.status.all().order_by('-id')[:1][0] except: return None class Status(models.Model): project = models.ForeignKey(Project, related_name='status') value = models.CharField(max_length=20, choices=STATUS_CHOICES, verbose_name='Status') date_created= models.DateTimeField(auto_now=True) def __unicode__(self): return self.value class Meta: verbose_name = ('Status') verbose_name_plural = ("Status") </code></pre> <p>views.py</p> <pre><code>@login_required def addProject(request): if request.method == 'POST': form = AddSingleProjectForm(request.POST) if form.is_valid(): project = form.save(commit=False) project.created_by = request.user project.save() project.status.create( value = form.cleaned_data.get('status', None) ) return HttpResponseRedirect('/project/') else: form = AddSingleProjectForm() return render_to_response('project/addProject.html', { 'form': form, 'user':request.user}, context_instance=RequestContext(request)) @login_required def editProject(request, proj_id): proj = Project.objects.get(pk=proj_id) if request.method == 'POST': form = AddSingleProjectForm(request.POST,instance=proj) if form.is_valid(): form.save() return HttpResponseRedirect('/project/') else: form = AddSingleProjectForm(instance=proj) return render_to_response('project/edit_project.html', { 'form': form}, context_instance=RequestContext(request)) </code></pre> <p>forms.py </p> <pre><code>from django.db import models from project.models import Project, Status from django.forms import * from django import forms from settings import STATUS_CHOICES class AddSingleProjectForm(ModelForm): status = forms.ChoiceField(choices=STATUS_CHOICES) class Meta: model = Project exclude = ('pre_quote', 'created_by') </code></pre> <p>Snippet from editproject template:</p> <pre><code>{% block content %} &lt;FORM METHOD="POST" ACTION=""&gt; {% csrf_token %} &lt;table&gt; {{ form.as_table }} &lt;/table&gt; &lt;input type="submit" value="Save Project"&gt; &lt;/FORM&gt; {% endblock %} </code></pre> <p>Any suggestions would be greatly appreciated.</p> <p>Thank you.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload