Obiekt TypeError nie jest iterowalny

Otrzymuję następujący błąd podczas próby zapętlenia zmiennej w moich szablonach Django. Przedmiotowa zmienna jest obiektem powiązanym z modelem określonym w mojej podklasie DetailView:

TypeError at / en / wnioskodawcy / 50771459778 /

Obiekt „Householdmember” nie jest iterowalny

Tutaj jest mójmodels.py plik:

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)

Tutaj jest mójurls.py plik:

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'^

Oto odpowiednia część mojego szablonu,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>

Część, która jest komentowana (tj. Część między<!-- --> tagi), co prowadzi mnie do przekonania, że ​​powinienem być w stanie iterować pohouseholdmember zmienna. Ale kiedy próbuję to zrobić, to nie działa - po prostu otrzymuję błąd TypeError powyżej.

Przeszukałem plik stackoverflow.com dla odpowiedzi, ale najbliższą odpowiedzią, jaką mogę znaleźć, jest ta:django jak zapętlić obiekt kontekstowy przekazany przez ogólny widok szczegółów?, ale to nie rozwiązuje mojego problemu, myślę, ponieważ używam widoków opartych na klasie.

Byłbym wdzięczny za każdą pomoc. Dzięki!

, login_required(ListViewApplicants.as_view( template_name='applicants/index.html', #context_object_name='form', )), name='index'), url(r'^(?P<pk_masked>\d+)/

Oto odpowiednia część mojego szablonu,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>

Część, która jest komentowana (tj. Część między<!-- --> tagi), co prowadzi mnie do przekonania, że ​​powinienem być w stanie iterować pohouseholdmember zmienna. Ale kiedy próbuję to zrobić, to nie działa - po prostu otrzymuję błąd TypeError powyżej.

Przeszukałem plik stackoverflow.com dla odpowiedzi, ale najbliższą odpowiedzią, jaką mogę znaleźć, jest ta:django jak zapętlić obiekt kontekstowy przekazany przez ogólny widok szczegółów?, ale to nie rozwiązuje mojego problemu, myślę, ponieważ używam widoków opartych na klasie.

Byłbym wdzięczny za każdą pomoc. Dzięki!

, login_required(DetailViewUnmask.as_view( model=Applicant, template_name='applicants/detail.html' )), name='detail'),

Oto odpowiednia część mojego szablonu,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>

Część, która jest komentowana (tj. Część między<!-- --> tagi), co prowadzi mnie do przekonania, że ​​powinienem być w stanie iterować pohouseholdmember zmienna. Ale kiedy próbuję to zrobić, to nie działa - po prostu otrzymuję błąd TypeError powyżej.

Przeszukałem plik stackoverflow.com dla odpowiedzi, ale najbliższą odpowiedzią, jaką mogę znaleźć, jest ta:django jak zapętlić obiekt kontekstowy przekazany przez ogólny widok szczegółów?, ale to nie rozwiązuje mojego problemu, myślę, ponieważ używam widoków opartych na klasie.

Byłbym wdzięczny za każdą pomoc. Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion