TypeError-Objekt ist nicht durchsuchbar
Ich erhalte die folgende Fehlermeldung, wenn Sie versuchen, um eine Schleife über eine variable in meinem Django-templates. Die variable in der Frage ist das zugehörige Objekt des Modells angegeben, in meinem Detailansicht Unterklasse:
TypeError at /de/BewerberInnen/50771459778/
'Householdmember' - Objekt ist nicht durchsuchbar
Hier ist mein models.py
Datei:
class Applicant(models.Model):
user = models.ForeignKey(User, editable=False)
bank_card_number = models.CharField(_('Bank card number'),max_length=50, unique=True)
site_of_interview = models.IntegerField(_('Site of interview'), choices = SITE_CHOICES, default=TIRANA, blank=False)
housenumber = models.CharField(_('House Number'),max_length=8)
address_line1 = models.CharField(_('Address line 1'),max_length=50)
address_line2 = models.CharField(_('Apt #'),max_length=50,blank=True)
municipality = models.CharField(_('Municipality/commune'),max_length=25)
district = models.CharField(_('District'),max_length=25,blank=True)
urban = models.IntegerField(_('Area (urban/rural)'), choices = AREA_CHOICES, blank=False)
postal = models.CharField(_('Postal code'),max_length=25,blank=True)
class Householdmember(models.Model):
applicant = models.ForeignKey(Applicant)
first_name = models.CharField(_('First name'),max_length=50,blank=False)
middle_name = models.CharField(_('Middle name'),max_length=50,blank=True)
last_name = models.CharField(_('Last name'),max_length=50,blank=False)
national_id = models.CharField(_('National ID'),max_length=50,blank=False, unique=True)
male = models.IntegerField(_('Gender'), choices = GENDER_CHOICES, blank=False)
date_of_birth = models.DateField()
rel_to_head = models.IntegerField(_('Gender'), choices = RELTOHEAD_CHOICES, blank=False)
disability = models.IntegerField(_('Is disabled?'), choices = YESNO_CHOICES, blank=False)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
Hier ist mein urls.py
Datei:
class ListViewApplicants(ListView):
paginate_by = 100
def get_queryset(self):
return Applicant.objects.all()
class DetailViewUnmask(DetailView):
def get_object(self):
return self.get_queryset().get(pk=mask_toggle(self.kwargs.get("pk_masked")))
urlpatterns = patterns('',
url(r'^$',
login_required(ListViewApplicants.as_view(
template_name='applicants/index.html',
#context_object_name='form',
)),
name='index'),
url(r'^(?P<pk_masked>\d+)/$',
login_required(DetailViewUnmask.as_view( model=Applicant,
template_name='applicants/detail.html'
)),
name='detail'),
Hier ist der relevante Teil meiner Vorlage detail.html
:
<h2>Household members</h2>
<table class="package_detail">
<tr>
{% include "applicants/householdmember_heading_snippet.html" %}
</tr>
{% for householdmember in applicant.householdmember_set.all %}
<tr>
{% for field in householdmember %}
<td>{{ field }}</td>
{% endfor %}
<!--
<td>{{ householdmember.first_name }}</td>
<td>{{ householdmember.middle_name }}</td>
<td>{{ householdmember.last_name }}</td>
<td>{{ householdmember.national_id }}</td>
<td>{{ householdmember.get_male_display }}</td>
<td>{{ householdmember.date_of_birth }}</td>
<td>{{ householdmember.get_rel_to_head_display }}</td>
<td>{{ householdmember.get_disability_display }}</td>
-->
</tr>
{% endfor %}
</table>
Den Teil, der auskommentiert ist (also den Teil zwischen den <!-- -->
tags) funktioniert, was mich dazu bringt zu denken, dass ich sollte in der Lage sein zu Durchlaufen householdmember
variable. Aber wenn ich versuche, so zu tun, es funktioniert nicht - ich bekomme nur die TypeError oben.
Den ich gesucht habe stackoverflow.com exentsively für eine Antwort, aber die nächste Antwort, die ich finden konnte ist dieses hier: django, wie eine Schleife durch das Kontext-Objekt übergeben, durch eine generische Detailansicht?, aber es löst nicht mein problem, denke ich, denn ich bin mit class based views.
Wäre dankbar jede Hilfe. Danke!
InformationsquelleAutor Shafique Jamal | 2013-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht iter über eine model-Instanz.
Ich empfehle Ihnen, verwenden Sie Ihre kommentierten code.
Wenn Sie immer noch wollen, zu einem forloop, vielleicht können Sie fügen Sie diesen code:
Aber niemand empfehlen,
Besser:
Project
imfor field in Project._meta.fields
in deinem code oben?Sorry, dass muss Householdmember
InformationsquelleAutor lalo
Habe ich es geschafft dieses Problem zu lösen; hier ist, wie. Ich benutzte info von hier: Iteration über model-Instanz Feldnamen und-Werte in der Vorlage
Hier ist, was ich Hinzugefügt, um meine
models.py
Datei:Und hier ist, was mein
detail.html
Datei landete auf der Suche wie:Und dieser gibt die gewünschte Ausgabe.
InformationsquelleAutor Shafique Jamal