我正在尝试通过一个模型来渲染ManyToManyField,该模型可以显示一个酒店列表,其中工作人员属于每个酒店。
我正在尝试在模板中显示正在显示的当前酒店内的用户,但出现错误
auth.User.None
我的模板
{% for Hotel in object_list %}
{{ Hotel.collaborateurs }}
{% endfor %}
我的模型。py
class Hotel(models.Model):
collaborateurs = models.ManyToManyField(User, verbose_name="Liste des collaborateurs autorisés")
(....)
谢谢
编辑;
我能够吸引用户,但是我正在渲染一个不美观的代码:
我只想呈现用户名。
答案 0 :(得分:1)
您需要使用.all
,因为许多关系总是被懒惰地加载到Django中。
Hotel.collaborateurs.all
此外,变量名称在Python中应小写。
collaborateurs =
在左侧需要缩进。
希望有帮助。
答案 1 :(得分:0)
models.py
class Song(models.Model):
user = models.ManyToManyField(User)
song_name = models.CharField(max_length=50)
song_duration = models.IntegerField()
def written_by(self):
return ",".join([str(p) for p in self.user.all()])
html 文件
{% for data in data %}
{{data.written_by}} # It returns username
{{data.song_name}}
{{data.song_duration}}
{% endfor %}