在没有<queryset [<user:=“”>]>的情况下在模板上呈现queryset

时间:2019-03-02 18:02:41

标签: python django django-templates django-queryset django-2.1

我正在模板中渲染ManyToManyField,但显示如下:

<QuerySet [<User: Guido>]>

我只想打印出没有该功能的用户名。

我的 views.py

class HotelListView(LoginRequiredMixin,ListView):
  model = Hotel

  def get_queryset(self):
    return self.model.objects.filter(collaborateurs=self.request.user)

我的模板

{% for Hotel in object_list %}
     {{ Hotel.collaborateurs.ALL }}
          {% endfor %}

谢谢。

修改

Models.py

class Hotel(models.Model):
collaborateurs = models.ManyToManyField(User, verbose_name="Liste des collaborateurs autorisés")
code = models.CharField(max_length=500,verbose_name="Code hôtel", null=True, blank=True)
email_manager = models.EmailField(max_length=150,verbose_name="Contact RH", null=True, blank=True)
contact_rh = models.EmailField(max_length=150,verbose_name="Contact RH", null=True, blank=True)
contact_gm = models.EmailField(max_length=150,verbose_name="Contact GM",null=True, blank=True)
payday = models.CharField(max_length=500,verbose_name="Jour de paye prévu du mois", null=True, blank=True)
hotel = models.CharField(max_length=500,verbose_name="Nom de l'hôtel")
planning = models.URLField(max_length=500, verbose_name="Planning du mois", null=True, blank=True)

def __str__(self):
    return self.hotel

def get_absolute_url(self):
    return reverse('hotel')

1 个答案:

答案 0 :(得分:1)

您还需要遍历协作者。

{% for Hotel in object_list %}
   {% for collaborator in Hotel.collaborateurs.all %}
      {{  collaborator.name }}
   {% endfor %}
  {% endfor %}

(显然,将name替换为模型中的相关字段。)