Note that there are some explanatory texts on larger screens.

plurals
  1. POShowing the Foreign Key value in Django template
    primarykey
    data
    text
    <p>Here is my issue. I am new to python/django (about 2 months in). I have 2 tables, Project and Status. I have a foreign key pointing from status to project, and I am looking to try to display the value of the foreign key (status) on my project template, instead of the address of the foreign key.</p> <p>Here is my 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 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) 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>My 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)) </code></pre> <p>And finally my template:</p> <pre><code>{% if project_list %} &lt;table id="plist"&gt; &lt;tr id="plist"&gt; &lt;th&gt;Quote #&lt;/th&gt; &lt;th&gt;Customer&lt;/th&gt; &lt;th&gt;Date&lt;/th&gt; &lt;th&gt;Project Name&lt;/th&gt; &lt;th&gt;Status&lt;/th&gt; &lt;th&gt;Contact&lt;/th&gt; &lt;/tr id="plist"&gt; {% for p in project_list %} &lt;tr id="plist"&gt; &lt;td&gt;&lt;a href="/project/{{ p.id }}/view"&gt;{{ p.pre_quote }}{{ p.quote }}&lt;/a&gt;&lt;/td&gt; &lt;td&gt;{{ p.client }}&lt;/td&gt; &lt;td&gt;{{ p.starts_on }}&lt;/td&gt; &lt;td&gt;{{ p.proj_name }}&lt;/td&gt; &lt;td&gt;{{ p.status_set.select_related }}&lt;/td&gt; &lt;td&gt;{{ p.created_by }}&lt;/td&gt; &lt;/tr&gt; {% endfor %} &lt;/table&gt; {% else %} &lt;p&gt;No projects available.&lt;/p&gt; {% endif %} </code></pre> <p>Any help would be much appreciated. Thank you!</p>
    singulars
    1. This table or related slice is empty.
    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.
 

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