Objeto TypeError não é iterável

Eu estou recebendo o seguinte erro ao tentar fazer um loop sobre uma variável em meus modelos do Django. A variável em questão é o objeto relacionado do modelo especificado em minha subclasse DetailView:

TypeError at / pt / candidates / 50771459778 /

Objeto 'Householdmember' não é iterável

Aqui está o meumodels.py Arquivo:

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)

Aqui está o meuurls.py Arquivo:

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

Aqui está a parte relevante do meu modelo,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>

A parte comentada (ou seja, a parte entre as<!-- --> tags) funciona, o que me leva a pensar que eu deveria ser capaz de iterar sobre ohouseholdmember variável. Mas quando eu tento fazer isso, não funciona - eu apenas obtenho o TypeError acima.

Eu pesquisei stackoverflow.com exsivamente por uma resposta, mas a resposta mais próxima que encontrei é esta:django como percorrer o objeto de contexto passado de volta por um detailview genérico?, mas isso não resolve o meu problema, porque eu estou usando visões baseadas em classes.

Gostaria muito de receber ajuda. Obrigado!

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

Aqui está a parte relevante do meu modelo,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>

A parte comentada (ou seja, a parte entre as<!-- --> tags) funciona, o que me leva a pensar que eu deveria ser capaz de iterar sobre ohouseholdmember variável. Mas quando eu tento fazer isso, não funciona - eu apenas obtenho o TypeError acima.

Eu pesquisei stackoverflow.com exsivamente por uma resposta, mas a resposta mais próxima que encontrei é esta:django como percorrer o objeto de contexto passado de volta por um detailview genérico?, mas isso não resolve o meu problema, porque eu estou usando visões baseadas em classes.

Gostaria muito de receber ajuda. Obrigado!

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

Aqui está a parte relevante do meu modelo,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>

A parte comentada (ou seja, a parte entre as<!-- --> tags) funciona, o que me leva a pensar que eu deveria ser capaz de iterar sobre ohouseholdmember variável. Mas quando eu tento fazer isso, não funciona - eu apenas obtenho o TypeError acima.

Eu pesquisei stackoverflow.com exsivamente por uma resposta, mas a resposta mais próxima que encontrei é esta:django como percorrer o objeto de contexto passado de volta por um detailview genérico?, mas isso não resolve o meu problema, porque eu estou usando visões baseadas em classes.

Gostaria muito de receber ajuda. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion