首页 > 解决方案 > 如何在绑定方法中获取实例名称?

问题描述

我做了一个“俱乐部”课程和几个实例。然后我将学生设置为俱乐部的外键。像这样。

在模型.py

class Club(models.Model):
    club = models.CharField(max_length=30)
    def __str__(self):
        return self.club

class Student(models.Model):
    student = models.CharField(max_length=30)
    clubs = models.ManyToManyField(Club, related_name='inclubs')
    class_s = models.ForeignKey(Class, on_delete=models.CASCADE)
    isfilled = models.BooleanField(default=False)
    atclub = models.ForeignKey(Club, on_delete=models.CASCADE) 

    def __str__(self):
        return self.student

    def atclub(self):
        return self.atclub

我想知道哪个俱乐部的学生参与其中。所以我写道,

在我的 results_view.html 中

  <head>
        <meta charset="UTF-8">
        <title>동아리 신청 확인</title>
    </head>
    <body>
    <ul>
        {% for student in a %}
        <div style="text-align:center">
        <li>{{student.student}}--{{student.atclub}}</li>
        </div>
        {% endfor %}
    </ul>
    <a href="{% url 'club:index'%}">Go to the main</a>
    </body>
    </html>

但结果是,

(页面预览)

(student name)--<bound method Student.atclub of <student name>>

我想获取俱乐部名称而不是绑定方法。我该如何解决这个问题?

标签: pythondjango

解决方案


你没有atclub字段。您有一个atclub 方法,它替换了该字段:

atclub = models.ForeignKey(Club, on_delete=models.CASCADE) 

def atclub(self):
    return self.atclub

第二个atclub名字取代了第一个;你不能两者兼得。调用atclub方法只会返回方法对象本身。

重命名一个或另一个,或完全删除该方法(它似乎没有任何用处)。


推荐阅读